简体   繁体   English

根据PHP数组值更改TD的背景色

[英]Changing background color of td based on php array value

With below code I am trying to change background color of td element. 使用下面的代码,我试图更改td元素的背景颜色。 I think code needs correction, any help please. 我认为代码需要更正,请提供任何帮助。 It's not applying color. 它没有应用颜色。 or any other better solution. 或其他更好的解决方案。

PHP code: PHP代码:

$color = "#000000";
if (($change[array_keys($change)[0]] < 0))
$color = "#E54028";
    else if (($change[array_keys($change)[0]] >= 1) && ($change[array_keys($change)[0]] <= 19))
       $color = "#F18D05";
    else if ($change[array_keys($change)[0]] >= 20)
       $color = "#61AE24";

Td element: Td元素:

<td <?php echo "style=background: $color";?>><?php echo $change[array_keys($change)[0]];?>%</td>

王杰代码后的表

hm, did you tried this? 嗯,你尝试过这个吗? https://www.w3schools.com/cssref/pr_background-color.asp https://www.w3schools.com/cssref/pr_background-color.asp

<?php echo "style='background-color:{$color};' "; ?>

Are your td tags in the table ? 您的td标签在table吗? The td tag must be the table cell and attribute of html tag must be quoted by " or ' . following code is work fine on me. td标签必须是表格单元格,并且html标签的属性必须用"'引用。以下代码对我来说很好用。

<?php
$change['a'] = 10;
$color = "#000000";
if ($change[array_keys($change)[0]] < 0)
$color = "#E54028";
else if (($change[array_keys($change)[0]] >= 1) && ($change[array_keys($change)[0]] <= 19))
$color = "#F18D05";
else if ($change[array_keys($change)[0]] >= 20)
$color = "#61AE24";
?>

<table>
 <td <?php echo "style=\"background: $color\"";?>><?php echo $change[array_keys($change)[0]];?>%</td>
</table>

When you face repetitive elements you should use foreach loop. 当您遇到重复元素时,应使用foreach循环。 It is easy in this situation, you just add foreach outside those code like this: 在这种情况下很容易,您只需在这些代码之外添加foreach如下所示:

<?php
foreach ($change as $item) {
  $color = "#000000";
  if ($item < 0)
  $color = "#E54028";
  else if (($item >= 1) && ($item <= 19))
  $color = "#F18D05";
  else if ($item >= 20)
  $color = "#61AE24";?>
  <td <?php echo "style=\"background: $color\"";?>><?php echo $item;?>%</td>
<?php } ?>

Normally a table is composed of two-dimensional array so loop twice can do it, but if the situation in your form is more complicated you can not do that. 通常,一个表是由二维数组组成的,因此两次循环可以做到这一点,但是如果表单中的情况更加复杂,则不能这样做。 You can create a function and call them when needed if you just want to simply achieve your need. 如果您只是想简单地实现自己的需要,则可以创建一个函数并在需要时调用它们。 Because I do not know your specific needs so I can only give you this simple suggestion. 因为我不知道您的具体需求,所以我只能给您这个简单的建议。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM