gpt4 book ai didi

php - 选择子菜单链接时,使父链接显示事件类

转载 作者:太空宇宙 更新时间:2023-11-04 14:38:43 25 4
gpt4 key购买 nike

我有一个 CSS/HTML 菜单,当 li 类处于事件状态时,它显示为不同的颜色。

我的菜单链接存储在数据库中,所以我运行 SQL 查询来显示菜单链接。

我正在努力做到这一点,如果用户在子菜单页面上,它将显示顶部链接(父顶部链接)为事件状态。

最好的方法是什么 - 我试过在顶部链接上做一个 if 语句,但是如果选择了子菜单链接,这不起作用

<div id="cssmenu">
<ul>
<li <?php if($_GET["id"] == '') { echo 'class="active"'; } ?>><a href="/home.php"><span>Homepage</span></a></li>
<?php
//select all the top row items
$sql="SELECT * from website_menu where parent_top = '' and parent = '' ";
$rs=mysql_query($sql,$conn) or die(mysql_error());
while($result=mysql_fetch_array($rs))
{
echo '<li';
if($_GET["id"] == $result["link"])
{
echo ' class="active"';
}
echo '><a href="/'.$result["link"].'"><span>'.$result["title"].'</span></a>';
//then select all the next rows down (parent_top)
$sql2="SELECT * from website_menu where parent_top = '".$result["sequence"]."' ";
$rs2=mysql_query($sql2,$conn) or die(mysql_error());
if(mysql_num_rows($rs2) > 0)
{
echo '<ul>';
while($result2=mysql_fetch_array($rs2))
{
echo '<li><a href="/'.$result2["link"].'"><span>'.$result2["title"].'</span></a>';
//
$sql3="SELECT * from website_menu where parent = '".$result2["sequence"]."' ";
$rs3=mysql_query($sql3,$conn) or die(mysql_error());
if(mysql_num_rows($rs3) > 0)
{
echo '<ul>';
while($result3=mysql_fetch_array($rs3))
{
echo '<li><a href="/'.$result3["link"].'"><span>'.$result3["title"].'</span></a></li>';
}
echo '</ul>';
echo '</li>';
}
else
{
echo '</li>';
}
}
echo '</ul>';
echo '</li>';
}
else
{
echo '</li>';
}
}
?>
</ul>

最佳答案

首先创建一个变量,看菜单项是否被选中,设置为false。在开始时在其主菜单循环中将其设置为 false。然后在将菜单项打印到屏幕之前循环遍历子菜单项,创建一个带有子菜单的字符串并检查其中一个是否在当前页面上。如果一个是当前页面,则将所选变量设置为 true。在子菜单循环之后,如果菜单项应该有一个附加类并且您可以使用子菜单创建该元素,您将拥有一个变量。

编辑

<div id="cssmenu">
<ul>
<li <?php if($_GET["id"] == '') { echo 'class="active"'; } ?>><a href="/home.php><span>Homepage</span></a></li>
<?php
//select all the top row items
$sql="SELECT * from website_menu where parent_top = '' and parent = '' ";
$rs=mysql_query($sql,$conn) or die(mysql_error());
while($result=mysql_fetch_array($rs))
{
//then select all the next rows down (parent_top)
$current = false;
$subMenu = '';
$sql2="SELECT * from website_menu where parent_top = '".$result["sequence"]."' ";
$rs2=mysql_query($sql2,$conn) or die(mysql_error());
if(mysql_num_rows($rs2) > 0)
{
$subMenu = '<ul>';
while($result2=mysql_fetch_array($rs2))
{
if($page == $currentPage)
{
$current = true;
}
$subMenu .= '<li><a href="/'.$result2["link"].'"><span>'.$result2["title"].'</span></a>';
//
$sql3="SELECT * from website_menu where parent = '".$result2["sequence"]."' ";
$rs3=mysql_query($sql3,$conn) or die(mysql_error());
if(mysql_num_rows($rs3) > 0)
{
$subMenu .='<ul>';
while($result3=mysql_fetch_array($rs3))
{
$subMenu .='<li><a href="/'.$result3["link"].'"><span>'.$result3["title"].'</span></a></li>';
}
$subMenu .='</ul>';
$subMenu .='</li>';
}
else
{
$subMenu .='</li>';
}
}
$subMenu .= '</ul>';
}
echo '<li';
if($_GET["id"] == $result["link"] || $current)
{
echo ' class="active"';
}
echo '><a href="/'.$result["link"].'"><span>'.$result["title"].'</span></a>', $subMenu, '</li>';
}
?>
</ul>

关于php - 选择子菜单链接时,使父链接显示事件类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18532447/

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