我正在尝试将表格列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文件。
答案 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]}'>";
.....