php管理员界⾯源码,php实现⼈员权限管理(管理员界⾯)
控制⼈员权限⽤的最多的应该是OA办公⾃动化系统和像ERP,CRM,CMS这样的管理系统,就是通过控制⽤户的权限来控制其拥有的⾓
⾊和功能,⽐如管理员可以拥有所有权限和功能,前台只能拥有登记和通报信息等。
⼀般标准的权限管理都会有5张数据表来控制,形成⼀个W型的连接关系,如下
看看表的结构
1.⽤户表2.⽤户⾓⾊对应表3.⾓⾊表4.⾓⾊功能对应表5.功能表
⾸先我们来做⼀个管理员的页⾯,这个页⾯能显⽰所有⽤户,并且能看到他们对应的⾓⾊,这⾥我们还能修改他们的⾓⾊,先看看效果
⼀步步来,先写出来选择⽤户的功能,当然,显⽰的⽤户都是从⽤户表⾥加载过来的
请选择⽤户:
请选择
<?phprequire"../";$db=newDataBa();$sql="lect*fromurs";$arr=$db->Query($sql);foreach($arr
as$v){echo"{$v[2]}";
}?>
再把⾓⾊的复选框写出来,附带那个保存按钮也写出来吧
请选择⾓⾊:
<?php$sql2="lect*fromjue";$arr2=$db->Query($sql2);foreach($arr2as$k){echo"$k[1]";
}?>
界⾯写完了,下⾯实现功能代码
功能1.选择相应⽤户,默认显⽰他对应的⾓⾊(复选框的默认选中)
⽤jquery的函数实现(页⾯开头先引⼊Jquery)
$("#l").change(function(){varuid=$("#l").val();//取到下拉选择的⽤户
$.ajax({//调⽤ajax
url:"",data:{uid:uid},type:"POST",dataType:"TEXT",success:function(data){varjs=().split("|");//返回的字符
串只有⾏,进⾏拆分和去空格,然后得到的是⾓⾊数组
varck=$(".ck");//获取所有复选框的值,交给了⼀个ck数组
("checked",fal);//先清空上次选择⽤户时留下的复选内容
for(vari=0;i
{varv=(i).val();//v代表的是每个复选框的值
if(f(v)>=0){//判断⼀下,返回的⾓⾊表中的数据是否存在,⽤的indexOf⽅法,如果不存在则返回-1
(i).prop("checked",true);//将数据库存在的⾓⾊对应的属性设置为选中
}}
}})
});
下⾯是处理页⾯
<?php$uid=$_POST["uid"];require"../";$db=newDataBa();$sql="lectjueidfromurinjue
whereurid='{$uid}'";echo$db->StrQuery($sql);
>
如果看不明⽩的话,看看这个返回字符串的类怎么写的
//成员⽅法
publicfunctionQuery($sql,$type=1){$db=newMySQLi($this->host,$this->uid,$this->pwd,$this->dbname);$r=$db-
>query($sql);
if($type==1){return$r->fetch_all();}el
{return$r;}}
//返回字符串的⽅法
publicfunctionStrQuery($sql,$type=1){$db=newMySQLi($this->host,$this->uid,$this->pwd,$this->dbname);$r=$db-
>query($sql);
if($type==1){$attr=$r->fetch_all();$str="";foreach($attras$v){$str.=implode("^",$v)."|";}
returnsubstr($str,0,strlen($str)-1);}
el
{return$r;}}
//返回JSON
publicfunctionjsonquery($sql,$type=1){$db=newMySQLi($this->host,$this->uid,$this->pwd,$this->dbname);$r=$db-
>query($sql);
if($type==1){returnjson_encode($r->fetch_all(MYSQLI_ASSOC));}el
{return$r;}}}
功能2.修改⽤户对应的⾓⾊,并且保存
$("#save").click(function(){//'保存'按钮的点击事件
varuid=$("#l").val();//获取下拉选择的⽤户
varstr="";varck=$(".ck");//获取所有复选框的值,放到ck数组
for(vari=0;i
{str+=(i).val()+",";//将选中的复选框值⽤“,”拼接起来交给str
}
}str=(0,-1);//截取⼀下str,因为最后尾部会多余⼀个符号
$.ajax({url:"",data:{uid:uid,js:str},//将⽤户和拼接好的已选择复选内容交给处理页⾯
dataType:"TEXT",type:"POST",success:function(data){
alert("保存成功")
}
})
})
处理页⾯
$js=$_POST["js"];//获取到了传递过来的已选择的复选框内容
require"../";$db=newDataBa();$sql="deletefromurinjuewhereurid='{$uid}'";//先把数据库中原
来⽤户的⾓⾊清空,不然修改起来会⿇烦
$db->Query($sql,0);$vv=explode(",",$js);//将复选框内容拆分,因为传来的是⼀个,隔开的长字符串,得到的vv是⼀个数组
foreach($vvas$v){//遍历这个数组
$sql2="inrtintourinjuevalues('','{$uid}','{$v}')";//依次写⼊数据库
$db->Query($sql2,0);
}
>
功能完成了。结束
本文发布于:2022-11-13 00:50:27,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/7716.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |