Php 将类添加到<;李>;如果使用mysqli查询存在子菜单

Php 将类添加到<;李>;如果使用mysqli查询存在子菜单,php,Php,我想知道,如果一个类有一个子菜单,我如何向它添加一个类 我有一个正确的HTML菜单填充从mysql数据库 <div class="collapse navbar-collapse"> <ul class="nav navbar-nav navbar-right"> <li><a href="/about-us/">About us</a> <ul class="dropdown-me

我想知道,如果一个类有一个子菜单,我如何向它添加一个类

我有一个正确的HTML菜单填充从mysql数据库

<div class="collapse navbar-collapse">
    <ul class="nav navbar-nav navbar-right">
        <li><a href="/about-us/">About us</a>
            <ul class="dropdown-menu">
                <li><a href="#">Link 1</a></li>
                <li><a href="#">Link 2</a></li>
                <li><a href="#">Link 3</a></li>
                <li><a href="#">Link 4</a></li>
                <li><a href="#">Link 5</a></li>
            </ul>
        </li>

        <li class="dropdown"><a href="contact.php">Contact</a></li>

    </ul>
</div>

我使用的是引导框架,因此对于下拉菜单,我必须将我的
  • 替换为:

    <li class='dropdown'>
        <a aria-expanded='false' aria-haspopup='true' class='dropdown-toggle' data-toggle='dropdown' href='/about-us/' role='button'>
            About us <span class='caret'></span>
        </a>
    </li>
    
    
    
    我想知道在循环中运行子菜单查询之前,如何检查
  • 是否有子菜单?这样我可以为下拉菜单添加标记

    以下是生成菜单的PHP代码:

    <div class="collapse navbar-collapse">
        <ul class="nav navbar-nav navbar-right">
            <?php
                        $res1 = $connection->query("SELECT * FROM primary_nav ORDER BY m_menu_id ASC");
                        while($menu=$res1->fetch_array())
                        {
                        ?>
                <li>
                    <a href="<?php echo $domain; ?><?php echo $menu['m_menu_link']; ?>">
                        <?php echo $menu['m_menu_name']; ?>
                    </a>
                    <?php
                        $res1_pro=$connection->query("SELECT * FROM primary_subnav WHERE m_menu_id=".$menu['m_menu_id']." ORDER BY seq ASC");
                        //echo "\xA";
                        ?>
                        <?php
                        if(mysqli_num_rows($res1_pro) > 0) {
                        echo '<ul class="dropdown-menu">' ."\xA";
                            while ($pro1_row = $res1_pro->fetch_array()) {
                        ?>
                            <li>
                                <a href="<?php echo $domain; ?><?php echo $pro1_row['s_menu_link']; ?>">
                                    <?php echo $pro1_row['s_menu_name']; ?>
                                </a>
                            </li>
                            <?php
                            }
                        echo '</ul>' ."\xA";
                        }
                        ?>
                </li>
                <?php
                            echo "\xA";
                        }
                        ?>
        </ul>
    </div>
    
    
    

    我可以用jQuery来做这件事,但我想用HTML的方式来做。

    你必须在
    中的类中添加
  • ,如果
    检查行数。然后,您必须添加一个
    else
    子句,以便在没有类的情况下呼出
  • <?php
    $res1 = $connection->query("SELECT * FROM primary_nav ORDER BY m_menu_id ASC");
    while($menu=$res1->fetch_array())
    {
    
        $res1_pro=$connection->query("SELECT * FROM primary_subnav WHERE m_menu_id=".$menu['m_menu_id']." ORDER BY seq ASC");
        //echo "\xA";
        if(mysqli_num_rows($res1_pro) > 0) { // echo the list element with the class here
    ?>
            <li class="foo">
                <a href="<?php echo $domain; ?><?php echo $menu['m_menu_link']; ?>"><?php echo $menu['m_menu_name']; ?></a>
    <?php
        echo '<ul class="dropdown-menu">' ."\xA";
        while ($pro1_row = $res1_pro->fetch_array()) {
    ?>
            <li>
                <a href="<?php echo $domain; ?><?php echo $pro1_row['s_menu_link']; ?>"><?php echo $pro1_row['s_menu_name']; ?></a>
            </li>
    <?php
        }
        echo '</ul>' ."\xA";
        } else { // echo the normal list element if number of rows is 0 
    ?>
        <li>
        <a href="<?php echo $domain; ?><?php echo $menu['m_menu_link']; ?>"><?php echo $menu['m_menu_name']; ?></a>
    <?php    
        }
    ?>
    </li>
    <?php
     echo "\xA";
    }
    ?>
    
    
    

  • 注意:这种特殊的编码风格使得在需要时编写和维护代码非常困难。您可能希望研究将PHP和HTML结合起来的方法,以便更容易地更新和维护您的代码。

    是否使用HTML方法?你的意思是当你从PHP输出HTML时你想这样做吗?是的,没错。。。。我不想使用jQuery,我希望PHP添加下拉类和其他标记。您可以等待输出父级
  • (您希望该类位于其上的父级),直到您在
    if
    语句中选中子菜单。是的,我也这么认为。它必须在
    if
    语句中进行检查,但我不知道如何在不在循环中运行子查询的情况下进行检查…在检查
    $res1\u pro
    是否有超过0行之前,您不会运行子查询。我遇到了此错误
    解析错误:语法错误,意外的文件结尾
    我清理了@XeBiithanks一百万。正如您在我的代码中所看到的,我只是一个初学者,对PHP的了解很少。我在学习,每当我被绊倒时,我都会来这里寻求帮助。因为我在自学。我希望我将来能成为一名优秀的编码/开发人员,并遵循适当的编码标准。你的帮助对我很重要。非常感谢:)