<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);