PHP,引导导航栏,其中包含从数据库加载的项目.如何添加类下拉列表


PHP, Bootstrap navbar with loaded items from database..how to add class dropdown?

我正在用php和bootstrap制作一个网站...我已经从数据库中加载了导航项并对其应用了引导程序样式。我对"下拉列表"类有问题,因为老实说,我不知道如何编写一个 if 语句来执行诸如"如果$subject有$page,请将类下拉列表添加到$subject"之类的操作。$subject是主要的导航项,$page是单击下拉列表时可见的项...现在,当单击没有$page的$subject时,它会显示一个几像素高,约40像素宽的空框。

这是我的代码...

    <ul class="nav navbar-nav">
        <?php $subject_set = find_all_subjects(); ?>
        <?php
            while($subject = mysqli_fetch_assoc($subject_set)) {
        ?>
        <?php 
            echo "<li class='"navitem dropdown" ;
            if($subject["id"] == $selected_subject_id) {
                echo " active'"" ;
            }else{
                echo "'"" ;
            }
            echo ">" ;
        ?>
        <a href="admin.php?subject=<?php echo urlencode($subject["id"]); ?>">
        <?php echo $subject["menu_name"]; ?>
        </a>
        <?php $page_set = find_pages_for_subject($subject["id"]) ; ?>
            <ul class="dropdown-menu" role="menu">
                <?php
                    while($page = mysqli_fetch_assoc($page_set)) {
                ?>
                    <li>
                    <a href="admin.php?page=<?php echo urlencode($page["id"]); ?>"><?php echo $page["menu_name"]; ?> </a>
                    </li>
                <?php
                    }
                ?>
                <?php
                    mysqli_free_result($page_set);
                ?>
            </ul>
        </li>
        <?php
            }
        ?>
    <?php
        mysqli_free_result($subject_set);
    ?>
    </ul>

如果有人能为我编写代码,我将不胜感激...... :)

请记住,我是一个菜鸟...温柔... :)

第一件事是,您可以在进入页面循环后加载子项:

while($subject = mysqli_fetch_assoc($subject_set)) {
    $page_set = find_pages_for_subject($subject["id"]);
    $nbPages = mysqli_num_rows($page_set);

这样您就可以获得具有$nbPages变量的子项数量

然后,当您输出页面列表时,您将能够确定是否需要下拉类:

echo "<li class='"navitem" . ($nbPages ? 'dropdown' : '') . "'"">;

输出子列表也是如此:

if ($nbPages) {
    ?>
    <ul class="dropdown-menu" role="menu">
    ....
    <?php
}