You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootstrap col-sm-3栅格列动态加载后无法横向并排显示问题

布局异常原因
  • 不符合Bootstrap栅格嵌套规则:Bootstrap栅格体系要求,所有带col-*类的列元素,直接父级必须是带row类的容器。row类自带flex布局上下文和负边距,用来抵消col的左右内边距、实现列横向排布。当前代码中#divResPas本身是外层row下的col-md-12列,你直接把后端返回的col-sm-3/col-sm-12元素插入到这个col容器中,缺少了row作为父容器,列自然无法按规则横向排列。之前你直接把#divResPas的class改成row依然异常,是因为row自带的左右负边距会和外层row的布局规则冲突,破坏了和其他同级col(比如顶部导航的col-sm-8、两侧col-sm-2)的对齐关系。
  • DOM标签嵌套顺序错误:后端输出的每个col-sm-3内容块中,标签闭合顺序写反:开头是<b><u>,闭合却写成</b></u>,正确的嵌套闭合顺序应该是先关闭内层标签、再关闭外层标签,也就是</u></b>。标签顺序错误会导致浏览器渲染时自动补全错位的DOM节点,打乱整体布局结构。另外你循环末尾输出的空col-sm-12分隔块属于冗余栅格元素,多记录场景下会额外打断行布局,完全可以用边距类实现同样的行间距效果。
  • 额外安全问题:后端PHP直接拼接GET参数到SQL语句,存在SQL注入风险。
修复步骤
  1. 调整HTML结构,在#divResPas内部嵌套一层专门放列的row容器,避免col直接套col的问题:
    <div class="col-md-12" id="divResPas">
      <!-- 后端返回的所有col元素都放到这个内层row中 -->
      <div class="row" id="resPasContent"></div>
    </div>
    
  2. 修改JS逻辑,把接口返回内容加载到内层row容器中,而不是直接加载到col容器里:
    <script type="text/javascript" language="javascript">
    $(document).ready(function(){
      $("#btnResPas").on("click",function(){
        $("#resPasContent").load("resPas.php?refClient=<?php echo $refClient?>");
      });
    });
    </script>
    
  3. 修复PHP代码的标签错误,移除冗余的空col元素,同时做基础的SQL注入防护:
    <?php
    include("connection.php"); 
    $refClient = $_GET['refClient'];
    // 转义特殊字符防SQL注入,建议后续改成预处理语句更安全
    $refClient = mysqli_real_escape_string($con, $refClient);
    $reservationClient = "SELECT * from tblreservation where idClient ='".$refClient."'";
    $result = mysqli_query($con,$reservationClient);
    if (mysqli_num_rows($result) == 0){
     echo '<div class="col-sm-12" style="text-align:center;"> Pas de réservation </div>';
    }else{
     while ($row = mysqli_fetch_array($result)){
       $id = $row['idTblReservation'];
       // 修复标签闭合顺序,加mb-3下边距实现行间距,替代原来的空col
       echo '<div class="col-sm-3 mb-3" style="text-align:center;"><b><u>Date de réservation : </u></b><br>';
       echo $row["dateReservation"];
       echo '</div>';
       echo '<div class="col-sm-3 mb-3" style="text-align:center;"><b><u>Heure : </u></b><br>';
       echo $row["heure"];
       echo '</div>';
       echo '<div class="col-sm-3 mb-3" style="text-align:center;"><b><u>Nombre de personnes : </u></b><br>';
       echo $row["nombreClient"];
       echo '</div>';
       echo '<div class="col-sm-3 mb-3" style="text-align:center;"><a href="modifierResClient.php?id='.$id.'"><br>Modifier</a></div>';
     }
    } 
    ?>
    
异常效果参考
  • 默认状态下的异常显示效果:默认加载异常截图
  • 直接将容器改为row后的异常显示效果:直接改row后的异常截图

内容的提问来源于stack exchange,提问作者KingFlamini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 19:54:16