我正在建立一个带子菜单的菜单。
我使用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);
}
}
}
?>
答案 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>';
}