原始代码如下:
<?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++;
}
答案 0 :(得分:8)
我自己做这个服务器端的个人方法是:
foreach ($foo as $bar) {
$class = ($class == "even") ? "odd" : "even";
echo "<li class='".$class."'>blah blah</li>";
}
答案 1 :(得分:2)
您可以单独使用CSS实现奇数/偶数着色:
li:nth-child(even) {background: #CCC}
li:nth-child(odd) {background: #FFF}
Browser support for nth-child选择器可能会有所不同。
答案 2 :(得分:1)
另一个说明:
从$i=1;
从奇数开始
答案 3 :(得分:0)
我认为你错过了一句话:
$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++;
}
答案 4 :(得分:0)
修改如下:
<?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
用于所有复选框?你的逻辑可能在这里错了
答案 5 :(得分:0)
你的做法很完美,但它有一个小故障,可能导致它无法按预期工作。在开始之后你似乎错过了一个'(单引号)&lt; li&gt; “/&gt;”后面的标记在你的陈述中。
它应该是这样的(注意粗体单引号):
echo'&lt; li class =“even”&gt;&lt; input type =“checkbox”checked =“checked”/&gt; '。 $ downlink-&gt;标题。 '&LT; /立GT;'
另一件事虽然没有关系 - 但不需要在开头的结尾处放置一个结尾/(正斜杠)&lt; li&gt;标记,因为它有自己的结束标记&lt; / li&gt;