使输出变为奇数和偶数?

时间:2011-06-14 10:03:30

标签: php

原始代码如下:

  <?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++;
        }

6 个答案:

答案 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选择器可能会有所不同。

请参阅http://www.w3.org/Style/Examples/007/evenodd

答案 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;