JQuery和PHP - 我无法在菜单上显示多个子菜单

时间:2014-03-31 16:55:37

标签: php jquery

我正在建立一个带子菜单的菜单。

我使用jQuery来显示/隐藏子菜单,并且我使用PHP来接收表值......

简而言之,jQuery用于视觉效果,php用于显示我数据库中正确的菜单/子菜单值。

但我在这里遇到了一些麻烦。当我单击菜单链接时,只有一个子菜单(第一个)显示,。

如何显示所有子菜单?

我多次禁用了jQuery,它显示了禁用jQuery脚本时的所有子菜单。

菜单视图

<?php
    function menu($url,$name){
        echo "
            <ul>
            <li class='Item1'><a>$name</a></li>
            <ul class='submenu'>
        ";
    }
?>
<?php
    function submenu($suburl,$subname){
        echo "
            <li class='menuitem'><a>$subname</a></li>
            </ul>
            </ul>
        ";
    }
?>

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> 



<style>
li{
    float:left;
    display:inline;
    margin-left: 50px;
}

.menuitem{
    display:none;
}
</style> 

<script> 
jQuery(function () {
    $('.Item1 a').click(function () {
        $(this).parent().next().children('.menuitem').toggle();
    });
})
</script>

菜单型号

<?php
include(PATH_PUBLIC . '/admin/modules/menu/view/menu_view.php');
function menuModel()
{
    connect();
    $menu = ("SELECT * FROM menu");
    $val  = DB_array($menu, 'a+');
    $ii   = count($val);
    $ii   = $ii - 1;
    for ($i = 0; $i <= $ii; $i++) {
        $name = $val[$i]['friendlyname'];
        $url  = $val[$i]['url'];
        $id   = $val[$i]['menu_id'];
        menu($url, $name);

        $submenu = ("SELECT * FROM submenu WHERE menu_id=$id");
        $valor   = DB_array($submenu, 'a+');
        $qq      = count($valor);
        $qq      = $qq - 1;
        for ($q = 0; $q <= $qq; $q++) {
            $subname = $valor[$q]['name'];
            $suburl  = $valor[$q]['url'];
            submenu($suburl, $subname);
        }
    }
}
?>

1 个答案:

答案 0 :(得分:0)

问题依赖于您的子菜单()函数。假设一个菜单项有4个子菜单。在第一个子菜单中,当第一次执行子菜单()时,关闭两个<ul>元素,这意味着第二个,第三个和第四个子菜单位于列表之外。

将子菜单()功能更改为

function submenu($suburl,$subname){

    echo "<li class='menuitem'><a>$subname</a></li>";
}

在退出第二个<ul>

后立即关闭for
 ......

   for ($q = 0; $q <= $qq; $q++) {
        $subname = $valor[$q]['name'];
        $suburl  = $valor[$q]['url'];
        submenu($suburl, $subname);
    }

    echo '</ul></ul>';
}