如何在PHP中实现特定行着色?

时间:2013-05-24 16:44:28

标签: php if-statement colors row

我正在尝试将表格列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访问数据库并运行一些简单的SQL查询的php文件。

4 个答案:

答案 0 :(得分:1)

试试这个

  $color = ($status=="O")? "YELLOW" : "GREEN"; 
  echo"<tr valign='top' BGCOLOR=\"$color\">";

答案 1 :(得分: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“内容”。在你写的时候,它只会包含第一个回声,这就是我用这种方式缩进的原因。

答案 2 :(得分: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 . "'>";

    ....
    ....

答案 3 :(得分:0)

$colors = array('O'=>'yellow',
                'P'=>'green');

if ($difflogtime <= $calctimespan || ($rid == 0 && ($status == 'O' ||  $status      == 'P'))){
  echo "<tr valign='top' BGCOLOR='{$colors[$status]}'>";
  .....