2014-01-10 145 views
0

我想要显示的下拉菜单我在下面根据用户的角色:显示下拉菜单“动态”?

<nav id="topNav"> 
<ul> 
    <li><a href="#">Applications</a> 
    <ul> 
    <li><a href="app1.php">App1</a></li> 
    <li><a href="app2.php">App2</a></li> 
    <li class="last"><a href="app3.php">App3</a></li> 
    </ul> 
    <li><a href="#">Corporate</a> 
    <ul> 
    <li><a href="corporate1.php">Corporate1</a></li> 
    <li><a href="corporate2.php">Corporate2</a></li> 
    <li class="last"><a href="corporate3.php">Corporate3</a></li> 
    </ul>   
    </li> 
    <li class="last"><a href="#">I.T.</a> 
    <ul> 
    <li><a href="IT1.php">IT 1</a> 
    <li class="last"><a href="IT2.php">IT 2</a></li> 
    </ul> 
    </li>  
</ul> 
</nav> 

在我的数据库,我有一个表中的字段ID,电子邮件和作用。 我的应用程序将首先检查用户是否应该进行身份验证,然后检查用户的角色(Staff/Agent)以显示下拉菜单中的不同内容。代理不需要查看所有项目。

目前我正在使用简单的“If else”语句来执行此操作。

<?php 
If($checkrole == "Staff") {?> 
    <nav> 
     display staff items 
    </nav> 
<?php}?> 
<?else {?> 
    <nav> 
     display agent items 
    </nav> 
<?php } ?> 

是否有任何JavaScript或PHP函数允许我更动态地显示这些菜单项?如果我将来有更多的角色,比如说10个角色,我现在的方法不是一个好的选项,它有点静态或硬编码。任何人都可以给我一些例子或帮助吗?谢谢

+3

JavaScript和现在在PHP中所做的一样。也许在数据库中添加另一个表来定义每个角色应该能够看到的内容? – putvande

+0

切换... case block? – hjpotter92

+0

你可以创建两个不同的导航..就像你现在有你的代码一样。换句话说,一个工作人员和一个代理人的导航 – Marinus

回答

0

在您的数据库中创建一个表,并为每个菜单项提供一个唯一的ID并添加一个表,您可以使用其唯一的菜单ID定义角色。然后在你的PHP页面中创建一个多维数组,如1 => 'home', 2 => 'anotherPage'。从数据库获取数据并用foreach循环遍历它们。

表 '角色'=>字段: '角色',场=>与值 '代理' 许可', '1 | 2 | 3'

在你的PHP文件:

  • 获取数据
  • 爆炸数据(爆炸( '|',数组);
  • multidimenional阵列=> 1 => '家' 等等
  • 环槽的分解数据

祝你好运!