有两套相互影响的菜单是不是很好?

时间:2015-11-13 03:59:19

标签: javascript php html css

我被告知修复使用平面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%相同。但他们互相影响

2 个答案:

答案 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>

希望这会对你有所帮助。