根据数据值更改表中项目的颜色

问题描述 投票:0回答:2

我的目标是让$row['status']中的项目在值为OFF时变为红色,如果值为ON则变为绿色。任何帮助将不胜感激。

<?php
include("connection.php");
$r = mysqli_query($dbc, "SELECT * FROM enclosure ORDER BY computer ASC");
echo "<table id='table' align='center' border='1' cellspacing='3' cellpadding='3' width='75%'>
<tr>
    <td align='left'><b>Enclosure Name</b></td>
    <td align='left'><b>Screen Status</b></td>
    <td align='left'><b>Time Screen in status</b>
    </td><td align='left'><b>Temperature of Enclosure</b></td>
    </td><td align='left'><b>Incoming Voltage</b></td>
</tr>"; 
while($row = mysqli_fetch_array($r)){
    $row['voltage'] = $row['voltage'] /1000;
    echo "<tr>
        <td align='left'>".$row['computer']."</td>
        <td align='left'>".$row['status']."</td>
        <td align='left'>".gmdate("H:i:s",$row['length'])."</td>
        <td align='left'>".$row['temp']."</td>
        <td align='left'>".$row['voltage']."</td>
        </tr>";         
}
mysqli_close($dbc);
$page = $_SERVER['PHP_SELF'];
$sec = "5";
?>
php mysql html-table
2个回答
1
投票

DevlishOne的答案是正确的,但你也应该考虑设置<td>的类而不是颜色。如果你的格式化欲望变得比红色/绿色更复杂(例如转换),或者如果这是或者变成更大的代码块,你会欣赏将样式转移到css文件。这通常被认为是一个好主意。

加成:

您要求使用类的简单版本:

echo "<td align='left' class='STATUS" . $row['status']  . "'>" . $row['status'] . "</td>";

这使用名为STATUSON和STATUSOFF的类,因此您可以使用css样式表

STATUSON {
color: green;
}

STATUSOFF {
color: red;
}

显然,如果有用,可以为每个类添加更多格式。


1
投票

更改:

<td align='left'>".$row['status']."</td>

至:

echo "<td align='left' style='color:" . ($row['status'] == "OFF" ? "red" : "green") . "'>" . $row['status'] . "</td>";
© www.soinside.com 2019 - 2024. All rights reserved.