2011-11-18 211 views
3

我有一個PHP循環,顯示我的網站上特定發佈的數據。我想要做的是爲返回的行數動態地分配一個甚至奇數的CSS類。例如,PHP循環,偶數/奇數行返回

first row returned - odd class 
second row returned - even class 
third row - odd class 

這將允許我分配不同的背景顏色以保持數據在視覺上分離。

我應該澄清一下 - 這個數據並沒有在表格中被返回。

while ($row = mysql_fetch_assoc($result)) { 

    echo " 
    <div class=\"songContainer\" id=\"" . $row['trackid'] . "\"> 
+0

你的問題是什麼?你試過什麼了?請張貼一些代碼。請使用網站的搜索功能(因爲這看起來像一個重複的問題)。 – hakre

+0

更快地擁有像datatables.com前端jquery代碼 - 谷歌「jquery表顯示插件」。 –

+1

[php:如何在數組中添加奇數/偶數循環]可能的重複(http://stackoverflow.com/questions/1403213/php-how-to-add-odd-even-loop-in-array) – hakre

回答

12

根據哪些瀏覽器,你有目標,你可能只是做到這一點與CSS:

.mytable tr:nth-child(even) { background-color: #FFF; } 
.mytable tr:nth-child(odd) { background-color: #EEE; } 

你甚至可以做更復雜的事情與此僞類:http://www.quirksmode.org/css/nthchild.html

如果你真的需要PHP,使用模:

$i = 0; 
foreach ($arr as $val) { 
    if (0 == $i % 2) { 
     // even 
    } 
    else { 
     // odd 
    } 
    $i++; 
} 
2

像這樣在CSS3中支持nth-child類。

table tr:nth-child(even) td{ 

} 

table tr:nth-child(odd) td{ 

} 

但是,如果你也要支持較老的,你別無選擇,只能通過PHP生成類名。

0

使用此jQuery的:

$("tr:nth-child(2n)").addClass("even") 
    .prev().addClass("odd"); 

它選擇每秒tr元素併爲其添加一個偶數類。然後它選擇以前的tr元素並向它添加一個奇怪的類。

Example

0
$num_rows = 0; 
$current_class = ""; 
while ($row = mysql_fetch_array($result)){ 
    $current_class = "class_odd"; 
    if($num_rows % 2 == 0){ 
     $current_class = "class_even"; 
    } 

    $num_rows++; 
}