我有这样的代码。
<ul>
<?php foreach (getUserMainMenus($get_user_id) as $get_main_menu): ?>
<li class='has-sub'><a href='#'><span><?=$get_main_menu['menu_name']; ?></span></a>
<ul>
<?php foreach (getUserChildMenu($get_main_menu['m_id'], $get_user_id) as $sub_menu): ?>
<li class='has-sub'><a href='<?=$sub_menu['menu_url']; ?>'><span><?=$sub_menu['menu_name']; ?></span></a>
<ul>
<?php foreach (getUserSubChildMenu($sub_menu['m_id'], $get_user_id) as $sub_sub_menu): ?>
<li class='has-sub'><a href='<?=$sub_sub_menu['menu_url']; ?>'><span><?=$sub_sub_menu['menu_name']; ?></span></a></li>
<?php endforeach; ?>
</ul>
</li>
<?php endforeach; ?>
</ul>
</li>
<?php endforeach; ?>
</ul>
第二个foreach的结果集是这样的。
Array ( [m_id] => 9 [menu_name] => MenuName [parent_menu_id] => 4 [menu_order] => 1 [menu_url] => menu1.php [status] => 1 )
如何在所有foreach语句之后检查if条件。 换句话说,我需要获取$ sub_menu值,如果有值显示li标签。 另外 - 我需要检查$ sub_sub_menu变量,如果有值显示li标签。
我如何实现这一目标?
谢谢, Kimz
答案 0 :(得分:1)
我想您尝试创建导航菜单。子条目应仅在页面访问者选择顶部菜单项时显示。
是吗?
好的,如果是的话。你可能会想到这一点。
您的工作是什么,您必须确保您的脚本检测到单击了哪个顶级菜单项。
您需要更多帮助,还是明确该做什么?
好的,作为动态php菜单的基本示例如何 test.php
<?php
$menu="";
extract( $_GET, EXTR_PREFIX_ALL, "url" );
if (isset($url_menu)){
$menu=$url_menu;
echo "you selected ".$menu."<br>";
}
echo "<ul>";
// top menu 1
echo '<li><a href="./test.php?menu=top1">Top1</a>';
if ($menu=="top1"){
echo "<ul>";
echo "<li>Submenu</li>";
echo "</ul>";
}
echo "</li>";
// top menu 2
echo '<li><a href="./test.php?menu=top2">Top2</a>';
if ($menu=="top2"){
echo "<ul>";
echo "<li>Submenu</li>";
echo "</ul>";
}
echo "</li>";
echo "</ul>";
?>
查看任何顶部菜单项移交附加变量“menu”。在这种情况下,这是“top1”或“top2”。现在重新加载的脚本检查是否已经设置了“菜单”,并根据“菜单”的值显示相应的子菜单。
还有很长的路要走,因为在我的情况下,我使用固定的菜单项,在这种情况下,根据“用户ID”加载菜单项。
如果上述示例适用于您的位置,并且您需要其他支持才能将其用于动态加载的菜单,请告诉我。
遵循这个想法你需要替换
<li class='has-sub'><a href='#'><span><?=$get_main_menu['menu_name']; ?></span></a>
通过添加例如变量名“level0”
<li class='has-sub'><a href='<?= ?level0=$sub_menu['menu_name']; ?>'><span><? $get_main_menu['menu_name']; ?></span></a>
然后您可以检查子菜单是否按照您的预期设置了“level0”,然后显示或隐藏子菜单项。