gpt4 book ai didi

php - 当它的子项具有类 ="current"时,将类 ="active"添加到父菜单

转载 作者:太空宇宙 更新时间:2023-11-04 04:55:55 24 4
gpt4 key购买 nike

我显然不知道如何将 class="current"添加到 <li> tag父菜单的 <li> tag有一个 class="active" .我尝试使用 jQuery 来实现它,但它不起作用,因为单击它时页面会重新加载。所以我简单地添加了一个名为 name 的字段进入数据库以用作参数。下面是我的 PHP 代码:

echo '<ul>';
$main_menu = model::getMainMenu();
foreach($main_menus as $menu){
echo '<li class="dropdown">
<a href=?page='.$menu['name'].'&m=1 class='.(($_GET['page'] == $menu['name'])?'current':'').'>'.$menu['title'].'</a>';
$sub_menus = model::getSubMenu($menu['id']);
if( $sub_menus != '' ){
echo '<ul>';
foreach($sub_menus as $sub){
echo '<li><a href=?page='.$sub['name'].' class='.(($_GET['page']==$sub['name'])?'current':'').'>'.ucwords( $sub['title'] ).'</a></li>';
}
echo '</ul>';
}
echo '</li>';
}
</ul>

我只能通过比较 $_GET['page'] and the $sub['name'] 来检测哪个子页面或页面当前处于事件状态(我的 url 结构就像这样 index.php?page=home )。但是,我不知道如何在当前选择子菜单时检测父菜单。

我上传了页面here

最佳答案

请参阅下面的代码。不确定它是否完全正确,但想法应该很清楚。基本上 - 您可以将所有 LIs html 收集到一个变量中,如果其中一个 LIs 处于事件状态,则将标志设置为 tru。而不是回显考虑标志变量状态的所有内容。

echo '<ul>';
$main_menu = model::getMainMenu();
foreach($main_menus as $menu) {
$sub_menus = model::getSubMenu($menu['id']);
$lis = "";
$hasCurrent = false;
if($sub_menus != '') {
foreach($sub_menus as $sub) {
$lis .= '<li><a href=?page='.$sub['name'].' class='.(($_GET['page']==$sub['name'])?'current':'').'>'.ucwords( $sub['title'] ).'</a></li>';
if($_GET['page']==$sub['name']) {
$hasCurrent = true;
}
}
echo '<li class="dropdown ' . $hasCurrent ? 'active' : '' . '">
<a href=?page='.$menu['name'].'&m=1 class='.(($_GET['page'] == $menu['name'])?'current':'').'>'.$menu['title'].'</a>';
if($lis != '') {
echo '<ul>';
echo $lis;
echo '</ul>';
}
}
echo '</li>';
}
</ul>

关于php - 当它的子项具有类 ="current"时,将类 ="active"添加到父菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12514202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com