我的CSS菜单有以下代码,它使用PHP从数据库中获取所有链接。
我为所选项目设置了活动/当前链接,适用于顶级链接,但我有子菜单,它不起作用。
例如,我有以下内容:
Services
- Service 1
-- Sub Service 1
如果选择服务1 ,则服务链接处于活动/当前状态但如果选择了子服务1 链接,我希望服务链接为活动/当前但不是
如何使用以下代码解决此问题?
<ul class="nav">
<?php
//select all the top row items
$sql="SELECT * from website_menu where parent_top = '' and parent = '' order by sequence ASC ";
$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"]."' order by sequence ASC ";
$rs2=mysql_query($sql2,$conn) or die(mysql_error());
if(mysql_num_rows($rs2) > 0)
{
$subMenu = '<ul>';
while($result2=mysql_fetch_array($rs2))
{
if($_GET["id"] == $result2["link"])
{
$current = true;
}
$subMenu .= '<li><a href="'.$settings["website_url"].'/'.$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="'.$settings["website_url"].'/'.$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="'.$settings["website_url"].'/'.$result["link"].'"><span>'.$result["title"].'</span></a>', $subMenu, '</li>';
}
?>
</ul>
答案 0 :(得分:0)
您可能想尝试这个
在您的关注while loop
进行此更改
while($result3=mysql_fetch_array($rs3))
{
$subMenu .='<li><a href="'.$settings["website_url"].'/'.$result3["link"].'"><span>'.$result3["title"].'</span></a></li>';
// add this if block
if($_GET["id"] == $result3["link"])
{
$current = true;
}
}