为什么Bootstrap 4会在此处额外生成一个<td>标签?
解决Bootstrap+PHP表格多余
<td>标签的问题 看起来你遇到了PHP输出HTML时很常见的标签溢出问题,我帮你梳理几个大概率的原因和对应的解决办法:
循环结构里的标签闭合不严谨
这是最容易踩的坑,比如你在遍历$cities数组时,可能不小心写错了标签的闭合逻辑:<?php foreach($cities as $city): ?> <tr> <td><?php echo $city['name']; ?></td> <td><?php echo $city['population']; ?> </tr> <!-- 第二个<td>没闭合,浏览器会自动补一个多余的<td> --> <?php endforeach; ?>或者循环结束后不小心多写了单独的
<td></td>,仔细检查循环内的标签配对情况,确保每个<tr>里的<td>都成对出现,循环外也没有冗余的<td>。数组末尾存在空元素
如果$cities数组最后有个空元素(比如数组定义时多打了逗号,或者数据库查询带回了空行),循环时会为这个空元素生成一个空的<td>。可以先打印数组确认:var_dump($cities); // 查看数组内是否有无效的空元素要是确实有空元素,要么清理数组,要么在循环里加判断过滤:
<?php foreach($cities as $city): ?> <?php if(!empty($city['name']) && !empty($city['population'])): ?> <tr> <td><?php echo $city['name']; ?></td> <td><?php echo $city['population']; ?></td> </tr> <?php endif; ?> <?php endforeach; ?>PHP代码外的冗余HTML标签
检查表格结束标签</table>之前的代码,有没有在PHP代码块之外手滑多写了单独的<td>标签,这种情况在页面源码里很容易定位到,直接删除即可。PHP输出的意外字符
有时候PHP文件末尾可能有多余的空格、换行,甚至是不小心误写的echo '<td>';语句,排查所有输出HTML的PHP代码,确保只有循环内部才会输出<td>,没有额外的输出逻辑。
如果能贴出完整的表格代码,定位会更精准,但先试试上面这几个排查方向,应该能解决问题。
内容的提问来源于stack exchange,提问作者f4seth
相关产品推荐
相关产品推荐

