簡體   English   中英

嘗試在PHP中替換行顏色

[英]Trying to Alternate Row Color in PHP

我正在尋找使用PHP函數替換行顏色的方法。 這是我所擁有的(盡管不起作用):

function row($year) {
    if($year%2) 
        $color == "#FFF";
    else
        $color == "#000";
}

for ($year=2013; $year<=2023; $year++) 
    {
    row($year);
    echo "<tr bgcolor='$color'><td>$year</td><td>$tdate</td></tr>";
    }

基本上,如果一年是奇數,我希望該行的顏色為白色。 如果均勻,則為黑色。

為什么不將CSS與nth-child選擇器一起使用?

tr:nth-child( 2n ) {
  background-color: #000;
}
tr:nth-child( 2n + 1 ) {
  background-color: #FFF;
}

然后,在<tr>元素上不需要其他屬性。

除了IE,大多數瀏覽器都支持此功能。 請參閱MDN瀏覽器兼容性

從W3c

15.1.1背景顏色-不建議使用bgcolor屬性,而應使用樣式表來指定背景顏色信息。

現在你該怎么辦

function row($year) {
    return ($year % 2 == 0) ? "#FFFFFF" : "#000000";
}

for ($year = 2013; $year <= 2023; $year++) {
    echo "<tr style='background-color:".row($year).";'><td>$year</td><td>$tdate</td></tr>";
}

但是它看起來像您不知道==做什么等於操作符而不是賦值操作符

例如,賦值運算符所做的就是將右側值賦給左手

在此處輸入圖片說明

比較運算符( == )的作用是

$a == $b    Equal   TRUE if $a is equal to $b after type juggling.

第二,你也有一個變量的范圍

變量的范圍是定義變量的上下文。 在大多數情況下,所有PHP變量都只有一個作用域。 這個單一范圍也涵蓋了包含和必需的文件。

以上摘自PHP手冊引述閱讀更多檢查此

function row($year) {
    $color = '';
    if($year%2) 
        $color = "#FFF";
    else
        $color = "#000";

   return $color;
}

for ($year=2013; $year<=2023; $year++) 
    {
    $color = row($year);
    echo "<tr bgcolor='$color'><td>$year</td><td>$tdate</td></tr>";
    }
for ($year=2013; $year<=2023; $year++) 
{
    echo "<tr bgcolor='".$year%2==0?"#fff":"#000"."'><td>$year</td><td>$tdate</td></tr>";
}

您不會在任何地方保存函數的結果。 嘗試這個:

function row($year) {
    if($year%2) 
        $color == "#FFF";
    else
        $color == "#000";
}

for ($year=2013; $year<=2023; $year++) 
{
    $color = row($year);
    echo "<tr bgcolor='$color'><td>$year</td><td>$tdate</td></tr>";
}

關於可變范圍。

你沒有從函數返回任何東西,這樣做

function row($year) {
    if($year%2) 
        $color == "#FFF";
    else
        $color == "#000";
return $color;
}

for ($year=2013; $year<=2023; $year++) 
    {
    $color = row($year);
    echo "<tr bgcolor='$color'><td>$year</td><td>$tdate</td></tr>";
    }

就像其他編程語言一樣,您必須知道何時使用局部變量和全局變量。 在這種情況下,您試圖在一個函數中使用另一個函數的局部變量。

function row($year) {
    if($year%2 == 1) 
        return "#FFF";
    else
       return "#000";
}

for ($year=2013; $year<=2023; $year++) 
    {
    echo "<tr bgcolor='".row($year)."'><td>$year</td><td>$tdate</td></tr>";
    }
<?php
$host=""; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$dbname=""; // Database name
$tblname=""; // Table name
// Connect to server and select databse
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$dbname")or die("cannot select DB");
$sql="SELECT * FROM $tblname";
$result=mysql_query($sql);
// Define $color=1
$color="1";
echo '<h3 align = "center">Employee Details <hr /></h3>';
echo '<table width="400" border="1" align="center" cellpadding="2" cellspacing="0">';
while($rows=mysql_fetch_row($result)){
// If $color==1 table row color = #FFCCFF
if($color == 1){
echo "<tr bgcolor='#FFCCFF'><td>$rows[0]</td><td>$rows[1]</td><td>$rows[2]</td><td>$rows[3]</td></tr>";
// Set $color==2, for switching to other color
$color="2";
}
// When $color not equal 1, table row color = #FFC600
else {
echo "<tr bgcolor='#FFC600'><td>$rows[0]</td><td>$rows[1]</td><td>$rows[2]</td><td>$rows[3]</td></tr>";
// Set $color back to 1
$color="1";
}
}
echo '</table>';
mysql_close();
?>

在上面的編碼中,首先我們從數據庫中選擇數據,然后定義一個值為$ 1的變量$ color。在while循環中添加了if條件。如果$ color = 1,則表行顏色將為#FFCCFF,並且在內部如果if條件我們設置$ color == 2切換到其他顏色。現在,當$ color不等於1時,則表行color =#FFC600並執行else條件。在else條件下,我們再次將$ color重新設置為1 。

暫無
暫無

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

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