根据其值更改html表格单元格颜色

时间:2011-12-10 11:56:58

标签: php html

您好我正在尝试根据从数据库中读取的值来更改html表的颜色。我正在发送我想要实现的目标的图像。 table http://oi40.tinypic.com/ejzuz9.jpg

2 个答案:

答案 0 :(得分:2)

首先,我认为您收到了downvote,因为您的帖子确实缺乏详细信息(您应该尝试为目前为止尝试的内容提供一些代码示例)。

我假设您正在使用PHP来呈现HTML,并且您希望根据值“0”为白色且值为“,”的值应用不同的橙色。 30“是满橙色。我没有在这里测试代码,毫无疑问你需要修改它以使用你的特定代码 - 因为我不知道有哪些数据可用。

$max = 30;
$values = array( 0, 5, 10, 15, 20, 25, 30 );
$white = array(255, 255, 255);
$orange = array(255, 63, 0);

echo '<table><tr>';
foreach ( $values as $value ) {
    $red = $white[ 0 ] + ( ( $orange[ 0 ] - $white[ 0 ] ) * $value / $max );
    $green = $white[ 1 ] + ( ( $orange[ 1 ] - $white[ 1 ] ) * $value / $max );
    $blue = $white[ 2 ] + ( ( $orange[ 2 ] - $white[ 2 ] ) * $value / $max );

    $color = $rgb2html( $red, $green, $blue );

    echo '<td style="background-color: '.$color.'">'.$value.'</td>';
}
echo '</tr></table>';

// function from http://www.anyexample.com/programming/php/php_convert_rgb_from_to_html_hex_color.xml
function rgb2html($r, $g=-1, $b=-1)
{
    if (is_array($r) && sizeof($r) == 3)
        list($r, $g, $b) = $r;

    $r = intval($r); $g = intval($g);
    $b = intval($b);

    $r = dechex($r<0?0:($r>255?255:$r));
    $g = dechex($g<0?0:($g>255?255:$g));
    $b = dechex($b<0?0:($b>255?255:$b));

    $color = (strlen($r) < 2?'0':'').$r;
    $color .= (strlen($g) < 2?'0':'').$g;
    $color .= (strlen($b) < 2?'0':'').$b;
    return '#'.$color;
}

答案 1 :(得分:0)

有两种方法可以解决这个问题。

  1. 使用if&amp ;;在每个值范围内使用特定类渲染单元格其他陈述。有点复杂。
  2. 2.您渲染完整的表格,然后使用javascript读取每个值并有意更改背景颜色。