如何在Dropdown中展示数据库某列全部值?现有代码无法实现
修复Dropdown下拉框展示数据库分类列的问题
你的代码无法正常展示所有分类的原因是下拉菜单容器<ul class="dropdown-menu">被放在了while循环内部,每读取一条分类数据就会生成一个新的下拉菜单容器,导致菜单结构混乱,无法正常显示所有选项。
修正后的代码如下:
<div class="dropdown dropstart text-end"> <button type="button" class="btn btn-primary dropdown-toggle" data-bs-toggle="dropdown"> category </button> <?php if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); exit(); }; $sql = " SELECT category_name FROM categories"; $result = mysqli_query($con, $sql); ?> <ul class="dropdown-menu"> <!-- 固定的添加分类选项,只显示一次 --> <li><a class="dropdown-item" href="http://localhost/class/first/categories/new_categories.php">adding new category</a></li> <?php if(mysqli_num_rows($result) > 0) { while($row = mysqli_fetch_array($result)) { ?> <li><a class="dropdown-item" href="#"><?php echo $row['category_name'] ?></a></li> <?php } } ?> </ul> </div>
关键改动说明
- 将
<ul class="dropdown-menu">移到while循环外,保证整个下拉菜单只有一个容器,所有分类选项都在同一个菜单内 - 把"添加新分类"的选项放在循环外,避免重复生成该选项
- 循环部分仅负责遍历数据库返回的分类数据,生成对应的列表项,确保所有分类都能显示在下拉菜单中
内容的提问来源于stack exchange,提问作者Pezhman
相关产品推荐
相关产品推荐

