我需要根据mysql检索的值生成一个动态着色<td>
的简单表。
这就是我需要的:
$target = 20;
$achieved = 13;
echo "<table border='1'><tr>";
for($i = 0; $i <= $target; $i++){
echo "<td></td>";
}
echo "</tr></table>";
以上代码绘制的表格中<td>
等于$target
等于<td>
。然后,我只需要使用变量$achieved
内的值为这些<td>
的背景着色。所以在这种情况下,我想要13个彩色{{1}}&#39>。
答案 0 :(得分:2)
也许您可以尝试这一点,并在您的CSS上添加td.coloured
$target = 20;
$achieved = 13;
echo "<table border='1'><tr>";
for($i = 0; $i <= $target; $i++){
if ($i < $achieved) {
echo "<td class=\"coloured\"></td>";
}
else {
echo "<td></td>";
}
}
echo "</tr></table>";
答案 1 :(得分:1)
您应该可以在此处使用标准if
语句,类似于:
if ($i < $achieved) // do the color
在循环中,您可以填充$bgcolor
变量,然后将其附加到您输出的<td>
中:
for($i = 0; $i <= $target; $i++){
$bgcolor = '';
if ($i < $achieved) {
// give it a red background color
$bgcolor = ' bgcolor="#ff0000"';
}
echo "<td" . $bgcolor . "></td>";
}
如果您想要更高级的样式,我建议使用CSS而不是bgcolor
属性。可以采用与上述相同的方法:
for($i = 0; $i <= $target; $i++){
$style = '';
if ($i < $achieved) {
// give it a red background color
$style = ' style="td-acheived"';
}
echo "<td" . $style . "></td>";
}
然后你可以拥有这种风格:
<style>
.td-acheived {
background-color: #ff0000;
}
</style>
答案 2 :(得分:0)
我会通过将它与css结合使用以及对你的php进行以下更改来实现这一点
$target = 20;
$achieved = 13;
echo "<table border='1'><tr>";
for($i = 0; $i <= $target; $i++){
echo "<td class='bgcolor-".$achieved."'></td>";
}
echo "</tr></table>";
然后在你的css文件中
.bgcolor-13{
background-color:blue;
}
答案 3 :(得分:0)
我不确定我是否理解,但我会尝试。
$target = 20;
$achieved = 13;
echo "<table border='1'><tr>";
for($i = 0; $i <= $target; $i++){
if($i<=$archieved){
echo "<td bgcolor='red'></td>";
}else{
echo "<td></td>";
}
}
echo "</tr></table>";