【问题标题】:Change background color of cell based on sql table number根据sql表号更改单元格的背景颜色
【发布时间】:2013-09-09 07:54:24
【问题描述】:

堆栈上的第一个问题,对于 php 来说也是非常新的问题,您可能从我下面的代码中可以看出。我试图做的是将数据库中的信息填充到页面上。它以表格形式出现,用户可以通过一个或多个过滤器搜索特定记录。 id 喜欢做的是让“年龄”过滤器根据年龄显示具有不同颜色背景的记录。它适用于一个人,因为它将显示所有年龄小于 22 岁的用户,背景为橙色。我喜欢它做什么(我认为这是我还不理解语法的部分)是显示所有年龄小于 19 岁的记录,红色背景和所有年龄小于 22 岁的记录,橙色背景。

我在下面的代码中想说的是,如果“年龄”的行记录小于 22,则给表格行的背景颜色为 ffab0a,如果小于 19,则给表格行的背景颜色为 ffff99 ,其他任何东西,没有背景颜色。

谁能帮我指出正确的方向?下面是控制这个的部分谢谢!

if ($row["age"]<22)
   echo '<tr style="background-color:#ffab0a">';
else if ($row["age"]<19)
   echo '<tr style="background-color:#ffff99">';
else
   echo '<tr>'; ?> 

<td><?php echo $row["age"]; ?></td>
<td><?php echo $row["location"]; ?></td>
<td><?php echo $row["form"]; ?></td>

【问题讨论】:

    标签: php html mysql


    【解决方案1】:

    您的问题是,您的工作顺序错误。您必须先检查该人是否未满 19 岁,然后检查他/她是否未满 22 岁。否则 18 岁的人也会被涂成橙色,因为当然 18 小于 22。

    <?
    if ($row["age"]<19)
       echo '<tr style="background-color:#ffff99">';
    else if ($row["age"]<22)
       echo '<tr style="background-color:#ffab0a">';
    else
       echo '<tr>'; 
    ?> 
    
    <td><?php echo $row["age"]; ?></td>
    <td><?php echo $row["location"]; ?></td>
    <td><?php echo $row["form"]; ?></td>
    

    【讨论】:

    • 非常感谢,正是我需要的。感谢您花时间回答我的问题!
    【解决方案2】:

    创建一个将年龄转换为颜色的函数。

    <?php
        function age_style($age) {
            if ($age < 19) return 'background-color:#ffff99';
            if ($age < 22) return 'background-color:#ffab0a';
            return '';
        }
    ?>
    

    那么你的表格渲染可以更干净一点:

    <tr style="<?=age_style($row['age'])?>">
        <td><?= $row["age"]; ?></td>
        <td><?= $row["location"]; ?></td>
        <td><?= $row["form"]; ?></td>
    </tr>
    

    这样不是更好看吗?它为您提供了一个单一位置,以便您在将来需要时轻松更新样式。

    【讨论】:

    • 我在另一个版本上试试这个,感谢您抽出时间回复!
    【解决方案3】:

    我会稍微不同地处理它......

    <?php
    if ($row['age'] < 22) { $style = 'background-color: #ffab0a'; }
    if ($row['age'] < 19) { $style = 'background-color: #ffff99'; }
    ?>
    
    <tr style="<?php echo $style; ?>">
    <td><?php echo $row['age']; ?></td>
    <td><?php echo $row['location']; ?></td>
    <td><?php echo $row['form']; ?></td?
    </tr>
    

    这样,以后如果发现需要对标记进行更改,或者想添加不同的条件,就不需要修改一堆&lt;tr&gt;标签了。

    【讨论】:

    • 我在另一个版本上试试这个,感谢您抽出时间回复!
    猜你喜欢
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    • 2022-01-20
    • 2011-04-03
    相关资源
    最近更新 更多