我被告知修复使用平面PHP,HTML和Javascript构建的现有项目。
它有2套不同的菜单(左侧菜单栏和顶部菜单栏)。两者都是这样的:
x
这是代码中包含的.css文件的一部分:
<ul>
<li<? if(basename($_SERVER['PHP_SELF'],'.php') == 'employee' && $_GET['act'] == 'dept'){?> class="bold"<? }?>>
<span><a class="fontMainMenu" href="<? echo 'employee.php?act=dept';?>">dept</a></span>
</li>
<li<? if(basename($_SERVER['PHP_SELF'],'.php') == 'employee' && $_GET['act'] == 'peronal'){?> class="bold"<? }?>>
<span><a class="fontMainMenu" href="<? echo 'employee.php?act=personal';?>">personal</a></span>
</li>
问题是:当我从顶部菜单栏中选择DEPT菜单时,左边菜单栏的活动(粗体)菜单也被更改为DEPT。
我的问题是:有两套相互影响的菜单真的可以吗?
个人而言,我发现它很奇怪,但我试图避免在代码中做出如此大的改变。我试过谷歌搜索但我没有找到这个问题的答案.. 抱歉我的英语不好。这不是我的第一语言编辑: 顶部和左侧菜单栏不是100%相同。但他们互相影响
答案 0 :(得分:0)
理想情况下,页面布局的开销是两个相同的菜单栏。但是,在某些情况下,它基于要求。如果您的要求如此,那么可以有两个菜单。
答案 1 :(得分:0)
这不是一个真正的代码问题,对吗?
对于usablilty,您可以使用https://usabilityhub.com/和http://www.trymyui.com/等网站测试菜单的可用性。
两次相同的菜单看起来有点奇怪,特别是如果你可以将这个空间用于子菜单或更好的东西?
代码看起来有点笨拙,所以我汇总了一个快速示例,说明您可能希望如何继续推进您的网站。很高兴收到批评。
<?php
$arrMenu = array(
"employee" => array(
"dept" => array(
"dept a" => "dept_a.php",
"dept b" => "dept_b.php",
"dept c" => "dept_c.php",
"dept d" => "dept_d.php",
),
"personal" => array(
"profile" => "profile.php",
"account" => "account.php",
"history" => "history.php",
),
),
);
$strTopMenuHTML = "";
$strSideMenuHTML = "";
$strFile = basename($_SERVER['PHP_SELF'],'.php');
foreach ($arrMenu as $strFileName => $arrFile)
{
foreach ($arrFile as $strTopMenuLabel => $arrSideMenu)
{
$strTopBold = "";
if ($strPage == $strFileName)
$strTopBold = " class=\"bold\"";
// I like to put the code into a sting but you can disect it and expose it in HTML mode if you like
$strTopMenuHTML .= " <li".$strTopBold.">\n";
$strTopMenuHTML .= " <span><a class=\"fontMainMenu\" href='".$strFileName.".php?act=".$strTopMenuLabel."'>".$strTopMenuLabel."</a></span>\n";
$strTopMenuHTML .= " </li>\n";
foreach ($arrSideMenu as $strSideMenuLabel => $strLocation)
{
$strSideBold = "";
if ($strPage == $strFileName && $_GET["act"] == $strSideMenuLabel)
$strSideBold = " class=\"bold\"";
$strSideMenuHTML .= " <li".$strSideBold.">\n";
$strSideMenuHTML .= " <span><a class=\"fontMainMenu\" href='".$strFileName.".php?act=".$strSideMenuLabel."'>".$strSideMenuLabel."</a></span>\n";
$strSideMenuHTML .= " </li>\n";
}
}
}
?>
<div id="container">
<div id="top_menu">
<ul>
<?php
echo $strTopMenuHTML;
?>
</ul>
</div>
<div id="side_menu">
<ul>
<?php
echo $strSideMenuHTML;
?>
</ul>
</div>
</div>
希望这会对你有所帮助。