如何按条件设置颜色,例如:
在我的表中有一个名为STATUS的列,它从db接收结果。 有三个文本:PG,PEN,ATR。
如果状态为PG,则颜色为绿色,PEN颜色为红色等。
怎么做?
我目前的代码是<th width="4%" scope="col"><?php echo $status;?></th>
答案 0 :(得分:3)
在HTML显示器上设置一个类,您甚至可以将其设为class="PG"
,以防您决定稍后更改颜色。然后在css中定义该类的颜色。
使用您提供的示例代码:
<th width="4%" scope="col" class="<?php echo $status;?>"> <?php echo $status;?></th>
CSS文件包括:
.PG {text-color:green;}
.PEN {text-color:red;}
注意:不确定颜色是指背景颜色还是文字颜色;要么有效。
答案 1 :(得分:2)
有三种方法可以做到(也可能还有其他一些方法),但这里有三种方法:设置样式的值,重新连接整个文本,或内联php颜色设置......这里有在我看来,从最好到最差的三种方式。
设置样式方法的值
$style = '';
if ( $status == 'PG' )
$style = 'style="color: green;"'; // You can replace with class=""
else if ( $status == 'PEN' )
$style = 'style="color: red;"'; // You can replace with class=""
else if ( $status == 'ART')
$style = 'style="color: blue;"'; // You can replace with class=""
?>
<th width="4%" scope="col" <?=$style?> ><?=$status?></th>
重写整行方法
<?php
if ( $status == 'PG' )
echo '<th width="4%" scope="col" style="color: green;">'.$status.'</th>';
else if ( $status == 'PEN' )
echo '<th width="4%" scope="col" style="color: red;">'.$status.'</th>';
else if ( $status == 'ART' )
echo '<th width="4%" scope="col" style="color: blue;">'.$status.'</th>';
?>
内联编辑
echo '<th width="4%" scope="col" ';
if ( $status == 'PG' )
echo 'style="color: green;"';
else if ( $status == 'PEN' )
echo 'style="color: red;"';
else if ( $status == 'ART' )
echo 'style="color: blue;"';
echo '>'.$status.'</th>';
答案 2 :(得分:1)
您可以在数组中设置颜色,您可以轻松地分配它们,如下所示。
$color = array (
"PG"=>"green", // use color code here
"PEN"=>"red"
);
在html中,您可以从数组中调用状态颜色:
<tr style='background-color:<?php echo $color[$row["status"]];?>'>
<td>....</td>
</tr>
答案 3 :(得分:0)
我认为您正在尝试根据$ status设置背景颜色...试试这个。
<?php
If($status=='pg'){
$color='red';
}
elseif($status=='pen')
{
$color='green';
}
elseif($status=='atr')
{
$color='yellow';
}
?>
<th width="4%" scope="col" style="background-color:<?php echo $color;?>">
<?php echo $status;?>
</th>