1

我正在尝试将表格列中的所有表格行着色status = O黄色。并且所有表格行所在的表格status = P列为绿色

我无法编辑当前的 IF 语句以获得我想要的输出。现在我的代码如下所示:

if ($difflogtime <= $calctimespan || ($rid == 0 && ($status == 'O' ||  $status      == 'P'))){
    echo"<tr valign='top' BGCOLOR='green'>";
    if ($editmode == 1)
        echo "<td valign='top'><Center><font face='Arial' size=2><img src='closedlock.gif' alt='Closed for editing' width='30%'></td>";
    else
        // echo "<td><center><img src='openlock.gif' alt='Open for    editing' border='0' width='30%'></td>";
        echo "<td><center><font  face='Arial' size =   2>$trimref</font></td>";
        echo "<td><Center><font  face='Arial' size =   2>".$dateshow1."</td>";
        echo "<td><Center><font face='Arial' size = 2>".$logtime."</td>";

这会将每一行显示为绿色。有人可以帮我更改此代码以获得所需的输出吗?那将不胜感激。谢谢

请注意:这是一个使用 microsoft access 数据库并运行一些简单的 sql 查询的 php 文件。

4

4 回答 4

1

尝试这个

  $color = ($status=="O")? "YELLOW" : "GREEN"; 
  echo"<tr valign='top' BGCOLOR=\"$color\">";
于 2013-05-24T16:50:29.550 回答
0
$colors = array('O'=>'yellow',
                'P'=>'green');

if ($difflogtime <= $calctimespan || ($rid == 0 && ($status == 'O' ||  $status      == 'P'))){
  echo "<tr valign='top' BGCOLOR='{$colors[$status]}'>";
  .....
于 2013-05-24T22:16:17.853 回答
0

你可以试试这个....

if ($difflogtime <= $calctimespan || ($rid == 0 && ($status == 'O' ||  $status == 'P'))){
    $color="";
    if ($status=="O"){$color="YELLOW";} else {$color="GREEN";}
    echo "<tr valign='top' BGCOLOR='" . $color . "'>";

    ....
    ....
于 2013-05-24T18:56:34.430 回答
0

您的代码中没有任何内容可以检查状态然后确定我要添加的颜色:

$bgColor = "yellow";
if ($status == 'O'){
    $bgColor = "green";
}

然后使用 $bgColor 参数:

echo '<tr valign="top" BGCOLOR="' . $bgColor . '">";

无论如何,您应该尝试使用一些 CSS。您的代码风格已被弃用。这会好很多:

CSS 代码:

.yellowStyle{
    vertical-align: top;
    background-color: yellow;
 }

 .greenStyle{
    vertical-align: top;
    background-color: green;
  }

你的 PHP/HTML:

if ($difflogtime <= $calctimespan || ($rid == 0 && ($status == 'O' || $status == 'P')){
    $styleType = "yellowStyle";
    if ($status == 'O'){
        $styleType = "greenStyle";
    }
    echo"<tr class="' . $styleType . '">";
    ....
    ....
 }

如您所问,这是您的代码与我的解决方案相结合:

if ($difflogtime <= $calctimespan || ($rid == 0 && ($status == 'O' || $status == 'P')){
    $bgColor = "yellow";
    if ($status == 'O'){
        $bgColor = "green";
    }
    echo '<tr valign="top" BGCOLOR="' . $bgColor . '">';
    if ($editmode == 1){
        echo "<td valign='top'><Center><font face='Arial' size=2><img src='closedlock.gif' alt='Closed for editing' width='30%'></td>";
    }
    else{
        // echo "<td><center><img src='openlock.gif' alt='Open for    editing' border='0' width='30%'></td>";
    }
    echo "<td><center><font  face='Arial' size =   2>" . $trimref . "</font></td>";
    echo "<td><Center><font  face='Arial' size =   2>" . $dateshow1 . "</td>";
    echo "<td><Center><font face='Arial' size = 2>" . $logtime . "</td>";
}

请注意,else您的代码中的“内容”不清楚。正如你写的那样,它只会包含第一个回声,这就是我以这种方式使用缩进的原因。

于 2013-05-24T16:50:33.437 回答