星空2020 2022-04-01 20:24 采纳率: 64.1%
浏览 75
已结题

php如何实现简单的class判断,实现不同权限进入不同菜单?

数据库字段如下字段。如何通过session在登录后实现不同class显示不同的导航栏菜单?

img

当前的登录页面:

<script language="javascript">
    if(top.location!==self.location){
        top.location.href=self.location.href;
    }
</script>

<!doctype html>
<html  class="x-admin-sm">
<head>
    <meta charset="UTF-8">
    <title>PCBA Repair登录</title>
    <meta name="renderer" content="webkit|ie-comp|ie-stand">
</head>
<body class="login-bg">
    
    <div class="login layui-anim layui-anim-up">
        <div class="message">登录系统</div>
        <div id="darkbannerwrap"></div>
        
        <form method="post" class="layui-form" >
            <input name="uname" placeholder="用户名"  type="text" lay-verify="required" class="layui-input" >
            <hr class="hr15">
            <input name="pwd" lay-verify="required" placeholder="密码"  type="password" class="layui-input">
            <hr class="hr15">
            <input value="登录" lay-submit lay-filter="login" style="width:100%;" type="submit">
            <hr class="hr20" >
        </form>
    </div>

</body>
    <?php
  require './untils/functions.php';

  if (empty($_POST)) {
    return;
  }

  if ($_POST['uname'] == '' || $_POST['pwd'] == '') {
    alert('请填完所有项');
    return;
  }

  require './untils/connect_db.php';

  $uname = $_POST['uname'];
  $pwd = $_POST['pwd'];


  $sql = "SELECT * FROM user where uname='$uname' and pwd='$pwd'";
  $result = $conn->query($sql);
  
  if ($result->num_rows > 0) {
      $row = $result->fetch_assoc();
      $id = $row['id'];
      setcookie("id", $id, time() + 36000);
      alert('登录成功');
      href('./ana.php');
  }
  else {
      alert('用户不存在或密码错误');
      }
  $conn->close();
  
?>


当前的导航页面如下,希望通过class等级使得侧边导航栏显示不同的菜单,比如class是1的显示全部菜单,class是2的只显示其中一个菜单。


```php
<?php
    require './untils/functions.php';
    if (!isset($_COOKIE['id'])) {
        href('./login.php');
        return;
    }
    require './untils/connect_db.php';
    $id = $_COOKIE['id'];
?>

<!doctype html>
<html class="x-admin-sm">
    <head>
        <meta charset="UTF-8">
        <title>系统登录</title>
        <meta name="renderer" content="webkit|ie-comp|ie-stand">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

        <script>
            // 是否开启刷新记忆tab功能
            // var is_remember = false;
        </script>
    </head>
    <body class="index">
        <!-- 顶部开始 -->
        <div class="container">
            <div class="logo">
                <a href="./home.php">系统导航</a></div>
            <div class="left_open">
                <a><i title="展开左侧栏" class="iconfont">&#xe699;</i></a>
            </div>
            <ul class="layui-nav right" lay-filter="">
                <li class="layui-nav-item to-index">
                    <a href="http://10.124.237.150">网址导航</a></li>
                <li class="layui-nav-item">
                    <a href="javascript:;">欢迎你,<?php 
                    $sql = "SELECT * FROM user where id=$id";
                    $result = $conn->query($sql);
                    if ($result->num_rows > 0) {
                        $row = $result->fetch_assoc();
                        echo $row['name'];
                    }
                    else {
                        echo "请登录!";
                    }
                ?></a>
                    <dl class="layui-nav-child">
                        <!-- 二级菜单 -->
                        <dd>
                            <a onclick="xadmin.open('切换帐号','login.php')">切换帐号</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item to-index">
                    <a href="./logout.php">退出</a></li>
            </ul>
        </div>
        <!-- 顶部结束 -->
        <!-- 中部开始 -->
        <!-- 左侧菜单如何根据class等级显示不同的li?????? -->
        <div class="left-nav">
            <div id="side-nav">
                <ul id="nav">
                    <li>
                        <a href="javascript:;">
                            <i class="iconfont left-nav-li" lay-tips="BGA Group">&#xe723;</i>
                            <cite>物品清单</cite>
                            <i class="iconfont nav_right">&#xe697;</i></a>
                        <ul class="sub-menu">
                            <li>
                                <a onclick="xadmin.add_tab('物品清单','list.php')">
                                    <i class="iconfont">&#xe6a7;</i>
                                    <cite>物品清单</cite></a>
                            </li>
                        </ul>
                    </li>
                    <li>
                        <a href="javascript:;">
                            <i class="iconfont left-nav-li" lay-tips="Mass Rework">&#xe723;</i>
                            <cite>仓库名称</cite>
                            <i class="iconfont nav_right">&#xe697;</i></a>
                        <ul class="sub-menu">
                            <li>
                                <a onclick="xadmin.add_tab('仓库名称','cangku'.php')">
                                    <i class="iconfont">&#xe6a7;</i>
                                    <cite>仓库名称</cite></a>
                            </li>
                        </ul>
                    </li>
                    <li>
                        <a href="javascript:;">
                            <i class="iconfont left-nav-li" lay-tips="Project-S">&#xe723;</i>
                            <cite>地区</cite>
                            <i class="iconfont nav_right">&#xe697;</i></a>
                        <ul class="sub-menu">
                            <li>
                                <a onclick="xadmin.add_tab('地区','diqu.php')">
                                    <i class="iconfont">&#xe6a7;</i>
                                    <cite>地区</cite></a>
                            </li>
                                
                           </ul>
                         </li>
                           </ul>
            </div>
        </div>
        <!-- <div class="x-slide_left"></div> -->
        <!-- 左侧菜单结束 -->
        <!-- 右侧主体开始 -->
        <div class="page-content">
            <div class="layui-tab tab" lay-filter="xbs_tab" lay-allowclose="false">
                <ul class="layui-tab-title">
                    <li class="home">
                        <i class="layui-icon">&#xe68e;</i>主页</li></ul>
                <div class="layui-tab-content">
                    <div class="layui-tab-item layui-show">
                        <iframe src='./echarts_show.php' frameborder="0" scrolling="yes" class="x-iframe"></iframe>
                    </div>
                </div>
                <div id="tab_show"></div>
            </div>
        </div>
        <div class="page-content-bg"></div>
        <style id="theme_style"></style>
        <!-- 右侧主体结束 -->
        <!-- 中部结束 -->
    </body>

</html>


```

  • 写回答

1条回答 默认 最新

  • 明日晴空 2022-04-01 23:09
    关注

    思路要变一下,根据获取到的class,生成要渲染的菜单。
    比如:
    用户1:显示【菜单1,菜单2,菜单3】
    用户2:显示【菜单1】
    用户3:显示【菜单3】

    前端获取到用户,判断是用户1,通过js,生成对应菜单到dom元素,然后再渲染;
    例:

     function menu1()
     {
        return  `<li>菜单1</li>`
     }
     function menu2()
     {
        return  `<li>菜单2</li>`
     }
      function menu3()
     {
        return  `<li>菜单3</li>`
     }
     var menu = ''
     // 判断是谁,生成对应菜单
     switch(user.class) { 
        case 1:
            menu = menu1() + menu2() + menu3()
            break;
        case 2:
            menu = menu1() 
            break;
        case 3:
            menu = menu3()
            break;
     }
      
     $("#nav").html(menu) // 渲染菜单元素
    

    具体代码得自己改

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月25日
  • 已采纳回答 1月17日
  • 修改了问题 4月14日
  • 修改了问题 4月1日
  • 展开全部

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装