HTML 列表结构中的 PHP 递归菜单

2023-11-30

这是 html 结构,它应该是这样的

<li><a href="#" class="menulink">Dropdown One</a>
    <ul>
        <li><a href="#">Navigation Item 1</a></li>
        <li>
            <a href="#" class="sub">Navigation Item 2</a>
            <ul>
                <li class="topline"><a href="#">Navigation Item 1</a></li>
                <li><a href="#">Navigation Item 2</a></li>
            </ul>
        </li>
        <li>
            <a href="#" class="sub">Navigation Item 3</a>
            <ul>
                <li class="topline"><a href="#">Navigation Item 1</a></li>
                <li><a href="#">Navigation Item 2</a></li>
                <li>
                    <a href="#" class="sub">Navigation Item 3</a>
                    <ul>
                        <li class="topline"><a href="#">Navigation Item 1</a></li>
                        <li><a href="#">Navigation Item 2</a></li>
                        <li><a href="#">Navigation Item 3</a></li>

                    </ul>
                </li>
                <li><a href="#">Navigation Item 4</a></li>
            </ul>
        </li>
        <li><a href="#">Navigation Item 4</a></li>
        <li><a href="#">Navigation Item 5</a></li>
    </ul>
</li>
<li><a href="#" class="menulink">Dropdown Two</a>
    <ul>
        <li><a href="#">Navigation Item 1</a></li>
        <li><a href="#">Navigation Item 2</a></li>
    </ul>
</li>

这是 mysql 表

id |parent_id|        name     |
---+---------+-----------------+
 1 |    0    |Dropdown One     |
 2 |    1    |Navigation Item 1|
 3 |    1    |Navigation Item 2|
 4 |    3    |Navigation Item 1|
 5 |    3    |Navigation Item 2|
 6 |    1    |Navigation Item 3|
 7 |    6    |Navigation Item 1|
 8 |    6    |Navigation Item 2|
 9 |    6    |Navigation Item 3|
10 |    6    |Navigation Item 4|
11 |    1    |Navigation Item 4|
12 |    1    |Navigation Item 5|
13 |    0    |Dropdown Two     |
14 |   13    |Navigation Item 1|
15 |   13    |Navigation Item 2|

也许不是最好的方法,但这是我的 PHP 函数尝试:

function listCategory($parent_id,$level=0) {
    $query = "SELECT name, id , parent_id FROM category  WHERE  parent_id=".$parent_id;
    $res = mysql_query($query) or die($query);
    $i=1;
    while (list ($name, $id) = mysql_fetch_row($res))
    {   
        if ($level==0) {echo '<li><a href="#" class="menulink">'.$name.'</a></li>';}

        echo '<li><a href="#" class="menulink">'.$name.'</a></li>';
        //echo $name ." i: ".$i." level: ".$level."<br>";
        $i++;
        listCategory($id,$level+1);
    }
}

listCategory(0);

感谢您提前提供的任何帮助


function listCategory($parent_id,$level=0) {
    $query = "SELECT name, id , parent_id FROM category  WHERE  parent_id=".$parent_id;
    $res = mysql_query($query) or die($query);
    if(mysql_num_rows($res) == 0) return;
    echo '<ul>';
    while (list ($name, $id) = mysql_fetch_row($res))
    {   
        if ($level==0)
        {
           echo '<li><a href="#" class="menulink">'.$name.'</a>';
        }
        else
        {
           echo '<li><a href="#">'.$name.'</a>';
        }
        listCategory($id,$level+1);
        echo '</li>';
    }
    echo '</ul>';
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML 列表结构中的 PHP 递归菜单 的相关文章

随机推荐

  • 如何在 Python 中使用 OpenCV 拉直图像的旋转矩形区域?

    下面的图片会告诉你我想要什么 我有图像中矩形的信息 宽度 高度 中心点和旋转度 现在 我想编写一个脚本来剪切它们并将它们保存为图像 但也要拉直它们 例如 我想从图像内部显示的矩形转到外部显示的矩形 我正在使用 OpenCV Python P
  • 查找二叉树中最大独立集的大小 - 为什么错误的“解决方案”不起作用?

    这是一个类似问题的链接 有一个很好的答案 Java算法寻找二叉树中最大的独立节点集 我想出了一个不同的答案 但我的教授说这行不通 我想知道为什么 他不回复电子邮件 问题 给定一个包含 n 个整数的数组 A 其索引从 0 开始 即A 0 A
  • python 是否有类似于 __setattr__ 但针对 python 类的方法?

    现在 设置属性 仅适用于实例 课堂上有类似的方法吗 我问这个问题是因为当用户在类中定义属性时 我想按顺序收集已定义属性的列表 如下所示 class CfgObj object fields def setattr self name val
  • HandlerInterceptorAdapter 和 Zuul 过滤器

    可以添加一个HandlerInterceptorAdapter with Zuul配置 我需要拦截对特定资源的请求 但我想是因为我有Zuul过滤器配置 拦截器永远不会被调用 可以这样做吗 我也试图达到同样的目的 我们有一些 Spring M
  • 获取垃圾输出 Java [重复]

    这个问题在这里已经有答案了 我正在尝试用 Java 实现一个构造函数 我不知道我是否做错了什么 但我不断收到垃圾输出 这是我试图为其赋值的变量 private static Employee employee 这就是我尝试分配它的方式 em
  • AttributeError:'tuple'对象没有属性'encode' - MySQLdb Python

    我正在用 MySQL 编写 Python 代码 我的数据库架构如下 id name 以下是我的代码的一部分 cursor self conn cursor query SELECT name FROM TABLENAME WHERE id
  • 正则表达式 - 精确匹配一个标签

    我有一个正则表达式来从 HTML 字体标签中提取文本 font face font 在我有一些嵌套的字体标签之前 这一切都很好 而不是匹配 font face Fett font 字符串的结果 font face Fett font u U
  • 您可以导入 .so 文件吗?

    我有一个名为的 so 文件tissue classifier cpython 37m x86 64 linux gnu so来自我想要导入的外部库 以便我可以在我的本地类之一中扩展它 由于我正在扩展一个类 因此我需要使用以下命令将其作为扩展
  • 如何为 adobe air 应用程序设置图标

    我正在开发 Adob e Air 应用程序 我需要为应用程序设置一个图标 以便它显示在任务栏上 我将图标标签添加到描述符文件中 但它不起作用 我真的不知道为什么 有什么想法吗 有两件事可能会让你失望 1 图标块在自动生成的描述符文件中默认被
  • 首次使用 AVX 256 位向量会减慢 128 位向量和 AVX 标量运算

    最初 我试图重现 Agner Fog 的微架构指南部分 YMM 和 ZMM 向量指令的预热期 中描述的效果 其中写道 处理器在不使用时关闭向量执行单元的上部部分 以节省电力 在大约 56 000 个时钟周期或 14 s 的初始预热期间 具有
  • 将流类型包含到 JSDoc 中

    我读过一些issues在 github 上和projects构建在 Flow 之上 用于在 Flow 和 JSDoc 之间创建 桥梁 或者简单地从 Flow 类型注释生成 JSDoc 他们都没有回答我的这个 简单 需求 问 如何将 Flow
  • 使用C C++删除文件恢复程序[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我想编写一个程序 可以从硬盘驱动器 FAT32 NTFS分区Windows 恢复已删除的文件 我不知道从哪里开始 这件事的出发点应该是什么 我应该读什么来追求这个目标 需要帮助 我应该
  • 没有模型和 Ajax 的 POST Json

    现在 我只想使用 HTTP POST 将 json 发送到 asp net mvc2 控制器 由于 JSON 实际上是 JSON 对象的列表 并且每个对象都有不同的字段和长度 因此我很难构建输入模型 所以我想知道是否有一种方法可以将没有模型
  • 如何在 lucene 4.0 中使用 ngram tokenizer?

    我正在研究不带空格的文本索引大型文本文件 目前我有 ngram 方法来生成长度为 12 的字符串 然后对它们进行索引 与搜索方式相同 我从用户处获取字符串 生成 12 的 ngram 然后使用它来构建查询 在搜索时 请阅读 lucene 中
  • 无法绑定到属于 C#/XAML 应用程序中 WindowsFormsHost Child 对象的属性的解决方法?

    我有一个 C WPF 4 51 应用程序 据我所知 您不能绑定到属于 WPF 子对象的对象的属性WindowsFormsHost控制 如果我的这个假设是错误的 请告诉我该怎么做 与 WindowsFormsHost 绑定 就我而言 我有一个
  • TFS 非 Windows 用户

    如何将非 Windows 用户添加到我的 Team Foundation Server 2012 Express 版本 我们与一家外包公司合作 我们希望建立一个可供国内外团队访问 TFS Express 版本的设置 由于外部开发人员不是我们
  • 如何求两个CG点之间的距离?

    当我们在 UIScrollView 中用两根手指进行多点触控时 我们得到两个 CG 点 我想找出他们之间的距离 然后当我们再次捏 内部或外部 时 我们将再次得到两点 然后在再次找到这两点之间的距离后 我想决定是捏进去还是捏出来 如果我捏紧了
  • 在 Visual C++ IDE 的输出窗口上打印输出

    如何在 Visual C 中的输出窗口上进行打印 我正在处理的项目不是控制台窗口项目类型 当我构建并运行它时 它不会打开控制台窗口 相反 它会打开一个 win32 应用程序 该应用程序不是我构建的 我只是向其中添加一些东西 我对 C 还很陌
  • 如何在 jetpack compose 中将视图模型从一个屏幕共享到另一个屏幕?

    我正在尝试学习 android jetpack compose 并且我有简单的应用程序 在 ScreenA 中 我有一个文本字段 当我单击按钮时 我会将这些数据保存到 firestore 当我进入 ScreenB 时 我想将城市名称也保存在
  • HTML 列表结构中的 PHP 递归菜单

    这是 html 结构 它应该是这样的 li a href class menulink Dropdown One a ul li a href Navigation Item 1 a li li a href class sub Navig