堆栈
上的第一个问题,对 php 来说也是非常新的,你可能从下面的代码中可以看出。我试图做的是将数据库中的信息填充到页面上。它以表格格式显示,用户可以通过一个或多个筛选器搜索特定记录。id喜欢做的是让"年龄"过滤器根据年龄显示具有不同颜色背景的记录。它将适用于一个人,因为它将显示所有年龄小于 22 岁的用户,背景为橙色。id 喜欢它做什么(我认为这是我只是还不理解语法的部分)是显示所有年龄小于 19 的记录,红色背景和所有年龄小于 22 的记录橙色背景。
我在下面的代码中想说的是,如果"age"的行记录小于 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>
你的问题是,你以错误的顺序工作。您必须先检查此人是否未满 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>
这样,如果您发现将来需要对标记进行更改,或者想要添加不同的条件,则无需修改一堆<tr>
标签。