【发布时间】:2017-08-19 16:45:34
【问题描述】:
我在 td 元素中使用 php echo 打印了具有百分比变化值的表格行。我想根据 php echo 值更改背景颜色。即如果值 >= 20 % -> 红色,值 0-19% -> 黄色和值 绿色。
如果包含值(不带 %),则为 td 元素着色的代码:
<td <?php if($array_select[array_keys($array_select)[0]] >= 2): ?>
style="background-color:#F78181; text-align: center;"
<?php endif; ?>
style=" background:#dcddc0 url('cell-grey.jpg');
border-color: #999999;"><?php echo $array_select[array_keys($array_select)[0]];?></td>
这里不工作:
<td style=" background:#dcddc0 url('cell-grey.jpg');
<?php if($change[array_keys($change)[0]] >= 20): ?>
style="background-color:#F78181; text-align: center;"
<?php endif; ?>
border-color: #999999;"><?php echo "${change[array_keys($change)[0]]}%";?></td>
更新的代码给出了错误的答案:
$value2 = $change[array_keys($change)[2]];
if($value2 >= 20){
$Style2 = 'style="background-color:#FF0000; text-align:center;border-width: 2px;padding: 8px; text-align: center;border-style: solid; border-color: #999999"';
}elseif($value2 > 0 && $value2 < 20){
$Style2 = 'style="background-color:#FFFF00; text-align:center;border-width: 2px;padding: 8px; text-align: center;border-style: solid; border-color: #999999"';
}elseif($value2 <= 0){
$Style2 = 'style="background-color:#009933; text-align:center;border-width: 2px;padding: 8px; text-align: center;border-style: solid; border-color: #999999"';
}
和
<td <?php echo $style2;?>><?php echo $change[array_keys($change)[2]];?>%</td>
【问题讨论】:
-
php 代码错误
if(change[array_keys($change)[0]] -
所以,这几乎是不可能的,因为我们不知道您的
$change和$array_select数组包含什么,所以我们是在黑暗中拍摄。 -
更好的办法是在 HTML 的 outside 变量中设置样式,然后简单地将
$style回显到 HTML 中,而不是混入其中的逻辑使用 HTML,它会变得混乱。 -
请包含更多代码以显示您正在使用的循环。还请包括您正在使用的输入数据。向我们展示
$change和$array_select以及其他任何必不可少的内容。 Sunil 的答案不是 DRY,应该有一个else,并且内联样式看起来很乱,就像在 php 标签中跳进跳出一样。 -
@SamadhanGaikwad
$Style2和$style2之间存在差异。请更正此错字(仅选择一个区分大小写的变量名称)并在您的更新中包含:$change和$array_select的值,以便我们可以为您提供一种简洁且周到的方式来编码您的项目。当前的答案没有使用最佳实践。