问题描述
|
原始代码如下:
<?PHP
foreach($values as $value){
$downlink=node_load($value);
echo \'<li><input type=\"checkBox\" checked=\"checked\"/>.$downlink->title.\'</li>\';
}
?>
我想输出到
<li class=\"odd\">...</li>
<li class=\"even\">...</li>
.....
这是我的方式。但这是行不通的。
$i=0;
foreach($values as $value){
$downlink=node_load($value);
if($i%2==0){
echo \'<li class=\"even\"><input type=\"checkBox\" checked=\"checked\"/>.$downlink->title.\'</li>\';}
else{
echo \'<li class=\"odd\"><input type=\"checkBox\" checked=\"checked\"/>.$downlink->title.\'</li>\';
}
$i++;
}
解决方法
您的操作方式是完美的,但故障很小,可能会导致其无法正常工作。似乎在两个语句中,在\“ /> \”之后的标记后都缺少\'(单引号)。
这是它的外观(请注意加粗的单引号):
echo \' <输入类型= \“ checkbox \”已选中= \“已选中\” /> \'。 $ downlink-> title。 \' li> \'
另一件事虽然不相关-不需要在开始 标记的末尾添加结束符/(正斜杠),因为它具有自己的结束标记 li>
, 我自己做此服务器端的个人方法是:
foreach ($foo as $bar) {
$class = ($class == \"even\") ? \"odd\" : \"even\";
echo \"<li class=\'\".$class.\"\'>blah blah</li>\";
}
, 您可以单独使用CSS实现奇/偶着色:
li:nth-child(even) {background: #CCC}
li:nth-child(odd) {background: #FFF}
浏览器对第n个子选择器的支持可能会有所不同。
参见http://www.w3.org/Style/Examples/007/evenodd
, 另一个注意事项:
从ѭ5开始
从奇数开始
, 修改如下:
<?php
$i=0;
foreach($values as $value){
$downlink=node_load($value); ?>
<li class=\"<?php echo ($i%2==0) ? \'even\' :\'odd\'\" ?>>
<input type=\"checkbox\" checked=\"checked\"><?php echo $downlink->title;?></li>
<?php
$i++;
}//end of foreach
注意:为什么要将所有复选框都设为checked=checked
?您的逻辑可能在这里错了
, 我认为您缺少报价:
$i=0;
foreach($values as $value){
$downlink=node_load($value);
if($i%2==0){
echo \'<li class=\"even\"><input type=\"checkbox\" checked=\"checked\"/>\'.$downlink->title.\'</li>\';}
else{
echo \'<li class=\"odd\"><input type=\"checkbox\" checked=\"checked\"/>.$downlink->title.\'</li>\';
}
$i++;
}