PHP 权限管理及主页面
<style type="text/css"> * { margin:0px auto; padding:0px; } .biao { padding-left:550px; padding-top:30px; } #menu { padding-left:200px; padding-top:20px; height:35px; } .list { width:120px; height:35px; margin-left:5px; background-color:#F9C; color:white; font-family:"黑体"; font-size:16px; font-weight:bold; text-align:center; line-height:35px; vertical-align:middle; float:left; } </style> </head> <?php session_start(); include("../dbda.php"); $db=new DBDA(); if(empty($_SESSION["uid"])) { header("location:login.php"); exit; } $uid=$_SESSION["uid"]; //根据用户名查用户对应角色表,找到相应的角色代号 $sjs="select jueseid from userinjuese where userid=\'{$uid}\'"; $attr=$db->Query($sjs); //根据角色代号查找功能 $gn=array();//存放功能的二维数组 $onegn=array();//存放功能的一维数组 foreach($attr as $v) { $sgn="select ruleid from juesewithrules where jueseid=\'{$v[0]}\'"; $agn=$db->Query($sgn); $gn=array_merge($gn,$agn); } //将$gn二维数组转化为$onegn一维数组 foreach($gn as $v) { $onegn[]=$v[0]; } //对功能的以为数组进行去重 $onegn=array_unique($onegn); ?> <body> <div class="biao"> <h1>主页面</h1><br /> </div> <div id="menu"> <?php foreach($onegn as$v) { $sname="select name from rules where code=\'{$v}\'"; $name=$db->strquery($sname); echo"<div class=\'list\'>{$name}</div>"; } ?> </div>
guanli.php
<script src="../jquery-1.11.2.min.js"></script> <style type="text/css"> .biao { padding-left:400px; padding-top:30px; } .div { padding-left:400px; padding-top:20px; } .but { padding-top:30px; padding-left:900px; } </style> <?php include("../dbda.php"); $db=new DBDA(); //查询用户表,查出所有数据 $suser="select * from users"; $auser=$db->Query($suser); //查询角色表,查出所有数据 $sjuese="select *from juese"; $ajuese=$db->Query($sjuese); ?> </head> <body> <div class="biao"> <h1>权限管理:用户对应角色管理</h1> </div> <div class="div"> <div> 请选择用户: <select id="user"> <?php foreach($auser as $v) { echo"<option value=\'{$v[0]}\'>{$v[2]}</option>"; } ?> </select> </div> <br /> <div> 请选择相应的角色: <?php foreach($ajuese as $v) { echo"<input type=\'checkbox\' class=\'juese\' value=\'{$v[0]}\'/>{$v[1]} "; } ?> </div> </div> <br /> <div class="but"> <input type="button" value="保存" id="btn" /> </div> </body> <script type="text/javascript"> $(document).ready(function(e) { //调用JSChecked方法 JSChecked(); $("#btn").click(function(){ //取人员选中值 var uid=$("#user").val(); //先找到所有的复选框 var ck=$(".juese"); var js=""; //再取复选框的所有选中值 for(var i=0;i<ck.length;i++) { //判断有没有选中 if(ck[i].checked) { //取选中的value值 js=js+ck.eq(i).val()+"|"; } } //去掉最后的| js=js.substr(0,js.length-1); $.ajax({ url:"guanlicl.php", data:{uid:uid,js:js}, type:"POST", dataType:"TEXT", success: function(data){ if(data.trim()=="ok") { alert("添加成功"); } else { alert("添加失败"); } } }); }) $("#user").change(function(){ JSChecked(); }) }); function JSChecked() { //取选中的用户名 var uid=$("#user").val(); $.ajax({ url:"uchajs.php", data:{uid:uid}, type:"POST", dataType:"TEXT", success: function(data){ //清空原有选中信息 $(".juese").prop("checked",false); //拆分一下data,得到该人员所拥有的角色代号 var attr=data.split("|"); //找到所有的复选框 var ck=$(".juese"); //遍历每个复选框,设置选中 for(var i=0;i<ck.length;i++) { //ck.eq(i)可以取到每个具体的复选框,再.val()可以取到里面的value值 var dh=ck.eq(i).val(); //$.inArray(dh,attr)判断元素是否在数组中,如果在返回所在位置的索引,如果不在返回-1 if($.inArray(dh,attr)>=0) { ck.eq(i).prop("checked",true); } } } }); } </script>
guanlicl.php
<?php include("../dbda.php"); $db=new dbda(); $uid=$_POST["uid"]; $juese=$_POST["js"]; //将传入的角色字符串拆分为数组 $attr=explode("|",$juese); //删除原数据 $sdel="delete from userinjuese where userid=\'{$uid}\'"; $db->Query($sdel,1); //循环添加数据 foreach($attr as $v) { $sql="insert into userinjuese values(\'\',\'{$uid}\',\'{$v}\')"; $db->Query($sql,1); } echo"ok";
uchajs.php
<?php include("../dbda.php"); $db=new DBDA(); $uid= $_POST["uid"]; //根据用户名查角色代号 $sql="select jueseid from userinjuese where userid=\'{$uid}\'"; echo $db->strquery($sql);