0

我正在寻找使用 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>";
    }

基本上,如果一年是奇数,我希望该行的颜色为白色。如果是,黑色。

4

8 回答 8

11

为什么不直接使用 CSS 和nth-child选择器呢?

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

<tr>那么元素上就不需要更多的属性了。

除了 IE,大多数浏览器都支持这个。请参阅MDN 的浏览器兼容性

于 2013-02-01T16:42:20.843 回答
3

来自 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 手册以阅读更多内容,请查看

于 2013-02-01T16:43:00.697 回答
1
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>";
    }
于 2013-02-01T16:42:09.513 回答
1
for ($year=2013; $year<=2023; $year++) 
{
    echo "<tr bgcolor='".$year%2==0?"#fff":"#000"."'><td>$year</td><td>$tdate</td></tr>";
}
于 2013-02-01T16:42:36.877 回答
0

就像其他编程语言一样,您必须知道何时使用局部变量和全局变量。在这种情况下,您试图在一个函数中使用另一个函数的变量。

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>";
    }
于 2013-02-01T16:44:06.697 回答
0

您没有将函数的结果保存在任何地方。尝试这个:

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>";
}

这是关于变量范围的。

于 2013-02-01T16:42:55.867 回答
0

你没有从函数返回任何东西,像这样

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>";
    }
于 2013-02-01T16:43:23.937 回答
0
<?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来切换到其他颜色.

于 2016-04-05T10:35:12.830 回答