2011-06-14 127 views
1

原代碼如下所示:使輸出成奇數和偶數?

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

爲什麼不起作用?你看到什麼錯誤。如果foreach循環執行第一個循環,則返回 – TJHeuvel 2011-06-14 10:04:14

回答

0

你的做法是完美的,但它有一個小故障,可能會導致它不按預期工作。看起來你在兩個語句中的「/>」後面的起始<li>標記後缺少'(單引號)。

這是它應該如何看(注意加粗單引號):

回聲「<李班=‘甚至’> <輸入類型=‘複選框’檢查=‘檢查’/ > 。 $ downlink-> title。 「< /李>」

的另一件事情雖然沒有相關的 - 它在開始<李>標籤月底建成一個結局/(正斜槓),因爲它有它自己的結束標記< /李不需要>

8

這樣做的服務器端的我個人的方法是:

foreach ($foo as $bar) { 

    $class = ($class == "even") ? "odd" : "even"; 

    echo "<li class='".$class."'>blah blah</li>"; 

} 
+0

。該值將被分配給該類。沒有什麼價值可以與班級進行比較。如何輸出偶數或奇數?謝謝 – zhuanzhou 2011-06-14 10:46:32

+1

因爲在循環的第一次迭代之前,$ class不等於任何東西,它將被設置爲「odd」(因爲它當前不等於「even」)。您應該儘可能預先設置它,因爲嘗試比較未設置的$ class可能會在您的屏幕或日誌中生成PHP通知(如果啓用了該級別的錯誤報告)。 – Codecraft 2011-06-14 11:57:53

+0

當循環的第二次迭代時,$ class也不等於anything.how的輸出甚至?謝謝。 – zhuanzhou 2011-06-14 12:56:06

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

他實際上在'checked =「checked」/>.$下行 - >標題' – tradyblix 2011-06-14 10:11:47

+0

我想寫報價!:) – 2011-06-14 10:29:47

1

另注:

開始從$i=1;

和奇

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所有複選框?你的邏輯可能在這裏出錯