PHP 在下拉列表中显示菜单树

标签 php html css mysql

菜单树的功能:

function category_tree($parent_id)
{
    $sql = "SELECT * FROM menu WHERE parent_id ='".$parent_id."'";
    $result = $conn->query($sql);

    echo "<div id=\"wrapper\">
    <div id=\"navmenu\">";
    while($row = mysqli_fetch_object($result)):
        $i = 0;
        if ($i == 0) echo '<ul>';
        echo '<li>' . $row->name;
        category_tree($row->id);
        echo '</li>';
        $i++;
        if ($i > 0) echo '</ul>';
    endwhile;
    echo "</div>
    </div>";
}

CSS 文件:

#navmenu {
    margin: 0;
    padding: 0;
}

#navmenu ul{
    margin: 0;
    padding: 0;
    height:30px;
}

#navmenu li{
    margin: 0;
    padding: 0;
    list-style: none;
    float: left;
    position: relative;
    background:#09F;

}

#navmenu ul li a{
    text-align:center;
    text-decoration:none;
    font-family:Arial, Helvetica, sans-serif;
    height:30px;
    width:150px;
    display:block;
    color:#000066;
    padding-top:7px;
}

#navmenu ul ul{
    position:absolute;
    visibility: hidden;
    top:30px;
}

#navmenu ul li:hover ul {
    visibility:visible;
}

#navmenu li:hover {
    background:#3366CC;
}

#navmenu ul li:hover ul li a:hover{
    background:#03C;
    color:#FFFFFF;
}

递归菜单的数据库:

enter image description here

结果是不使用 div 元素 (id=wrapper,id=navmenu) 效果很好,参见:

enter image description here

当我放回 div 元素 (id=wrapper,id=navmenu) 时,它并没有像我想要的那样发生:

enter image description here

我想要:当我在“Felso 菜单”上的光标显示下拉菜单(Sport、Ekszer、Egyeb)时,如果我在“Foci”上的光标显示下拉菜单(Mezek、Egyeb、Utok、Labdak)等。 .. 我该怎么做,或者如何修复我的代码有什么想法吗?

最佳答案

好的。我解决了这个问题,这是我的代码:

function get_menu_tree($parent_id)
{
    global $conn;
    $menu = "";
    $sqlquery = " SELECT * FROM menu where parent_id='" .$parent_id . "' ";
    $res=mysqli_query($conn,$sqlquery);
    while($row=mysqli_fetch_array($res,MYSQLI_ASSOC))
    {
        $menu .="<li><a href='".$row['link']."'>".$row['name']."</a>";

        $menu .= "<ul>".get_menu_tree($row['id'])."</ul>"; //call  recursively

        $menu .= "</li>";

    }
    return $menu;
}

关于PHP 在下拉列表中显示菜单树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41262776/

相关文章:

html - 将 HTML 输入标签光标放在占位符文本的左侧

javascript - 如何在具有html的变量中使用变量

php - 三个带条件的表上的 INNER JOIN

php - 如何解析嵌套的json并存储到mysql数据库中?

WordPress wp_customize->add_control 中使用的 PHP foreach 循环

c# - 如何在 C# 中将 html 转换为 BBcode

golang 模板中的 HTML 表单提交

javascript - 尝试使用 XMLHttpRequest() 将值从 jquery 传递到 php 文件

html - 使用 Bootstrap 构建 HTML 的正确方法

css - 清理 CSS 文件