簡體   English   中英

PHP while循環,返回偶數/奇數行

[英]PHP while loop, even/odd rows returned

我有一個PHP循環,顯示我網站上特定帖子的數據。 我想要做的是為返回的行數動態分配任一和偶數/奇數CSS類。 例如,

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'] . "\">

根據您必須定位的瀏覽器,您可以使用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++;
}

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

table tr:nth-child(even) td{

}

table tr:nth-child(odd) td{

}

但是如果你也支持舊版本,你別無選擇,只能通過PHP生成類名。

使用php時,你可以使用它而不是Pascal建議的模數:

    $i = 0;
    foreach ($arr as $val) {
        if ( $i = 1 - $i ) {
            // even
        }
        else {
            // odd
        }
    }

使用這個jQuery:

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

它選擇每隔二個tr元素並為其添加一個偶數類。 然后它選擇前一個tr元素並為其添加一個奇數類。

例子

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM