这里关于堆栈的第一个问题,对php来说也是非常新的,您可能可以从下面的代码中看出这一点。我要做的是将数据库中的信息填充到页面上。它以表格格式显示,用户可以通过一个或多个过滤器搜索特定记录。我想做的是让“年龄”过滤器根据年龄以不同的颜色背景显示记录。它只适用于一个用户,因为它将显示所有年龄小于22岁的用户,背景为橙色。我希望它能做的(我想这是我还不理解语法的部分)是用红色背景显示年龄小于19岁的所有记录,用橙色背景显示年龄小于22岁的所有记录。
在下面的代码中,我想说的是,如果‘age’的行记录小于22,则给表行一个背景色FFB0A,如果小于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>
你的问题是,你工作的顺序错了。你必须先检查这个人是否在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>
创建一个将年龄转换为颜色的函数。
<?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>
看起来不是更好吗?它为您提供了一个单独的位置,以便在将来需要时轻松更新样式。
我会以稍微不同的方式处理它。。。
<?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>
这样,如果你发现你需要在将来对标记进行更改,或者如果你想添加不同的条件,你不需要修改一堆