PHP使用for和if实现循环生成表格的奇偶行不同背景色
问题修正方案
你原有代码的核心逻辑错误如下:
- 在
if奇偶判断分支中额外输出了仅包含空单元格的无效<tr>行,后续又单独输出了带完整数据的<tr>,导致每轮循环生成2行表格,且真正承载数据的行没有设置背景色属性。
修正后的完整代码如下:
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <table> <tr> <th>id</th> <th>serial</th> <th>pds_number</th> <th>name</th> <th>familySize</th> <th>voucher_Value</th> <th>phone</th> </tr> <?php for ( $i = 1; $i < 12 ; $i++ ) { // 先判断当前行的背景色 $bgColor = $i % 2 == 0 ? 'red' : 'blue'; ?> <!-- 把背景色属性加到数据行的tr标签上 --> <tr bgcolor="<?php echo $bgColor; ?>"> <td> <?php echo $i; ?></td> <td> <?php echo "a001" ?></td> <td> <?php echo "1234"; ?></td> <td> <?php echo "nn"; ?></td> <td> <?php echo "1"; ?></td> <td> <?php echo "100"; ?></td> <td> <?php echo "077011111"; ?></td> </tr> <?php } ?> </table> </body> </html>
修改后逻辑说明:
- 循环内先通过
$i%2的结果判断当前行的背景色,存入变量$bgColor - 把背景色属性直接绑定到输出数据的
<tr>标签上,不再生成多余的空行 - 运行后会生成11条数据,奇数行(第1、3、5...行)背景为蓝色,偶数行(第2、4、6...行)背景为红色,符合需求。
内容的提问来源于stack exchange,提问作者narin
相关产品推荐
相关产品推荐

