2013-08-31 64 views
0

比方說,我有一個看起來像這樣的代碼:如何在while循環中交替使用DIV顏色?

while ($info = mysql_fetch_assoc($data_p)) { 
    $name = stripslashes($info['name']); 
    $desc = stripslashes($info['description']); 
    $desc = substr($desc, 0, 150); 
    $price = stripslashes($info['price']); 
    Print "<div style=\"width:600px; height:150px; border:1px solid black; overflow:hidden\"><div style=\"height:148px; width:25%; border:1px solid red; float:left\"><center><img src=\"".$picture."\" height=\"120\" width=\"120\" style=\"margin-top:15px\" /></center></div><div style=\"height:150px; width:50%; border:1px solid blue; float:left; text-overflow: ellipsis; padding-top:5px\"><center><font size=\"+1\"><b><a href=\"result.php?product=".urlencode($name)."\">".$name."</b></a></font><br><br>".$desc."...</center></div><div style=\"height:150px; width:24%; border:1px solid green; float:left\"><center><h1>$".$price."</h1><button>Add to Cart</button></center></div></div>"; 

中首先while循環定義我想交替的灰色兩種色調主要DIV。所以在結果中,它看起來像是淺黑暗的光線暗等......我試着用不同的顏色再次重複回聲,但是這會使每個結果重複。有沒有辦法做到這一點?

+0

我會在while循環之外有一個變量來跟蹤這個。然後在循環中,你可以說'$ color =!$ color'或類似的東西來回切換。 –

回答

1
$c = 1; 

while ($info = mysql_fetch_assoc($data_p)) { 
    $name = stripslashes($info['name']); 
    $desc = stripslashes($info['description']); 
    $desc = substr($desc, 0, 150); 
    $price = stripslashes($info['price']); 
    Print "<div style=\"background:" . ($c ? '#ccc' : '#aaa') . "width:600px; height:150px; border:1px solid black; overflow:hidden\"><div style=\"height:148px; width:25%; border:1px solid red; float:left\"><center><img src=\"".$picture."\" height=\"120\" width=\"120\" style=\"margin-top:15px\" /></center></div><div style=\"height:150px; width:50%; border:1px solid blue; float:left; text-overflow: ellipsis; padding-top:5px\"><center><font size=\"+1\"><b><a href=\"result.php?product=".urlencode($name)."\">".$name."</b></a></font><br><br>".$desc."...</center></div><div style=\"height:150px; width:24%; border:1px solid green; float:left\"><center><h1>$".$price."</h1><button>Add to Cart</button></center></div></div>"; 

    $c = 1 - $c; 
1

如果你要保持你的設計和邏輯分離,你可以用CSS做得一樣好:

div:nth-child(odd) { 
    background:#c0c0c0; 
} 
div:nth-child(even) { 
    background:#a0a0a0; 
} 
+0

@ user2566387這是專業級的答案。不要混淆你的PHP代碼分配樣式。按照預期使用css的優雅。 – mickmackusa

1

你可以指望的DIV的數量和顏色改變奇數和偶數。

$num = 0; 
while ($info = mysql_fetch_assoc($data_p)) { 
$num++; 
$color = ($num % 2) ? '#ccc;' : '#aaa'; 
//***insert your relevant variables 
}