hq金水

愿你是阳光,明媚不忧伤~
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

设置权限

Posted on 2016-07-11 16:46  hq金水  阅读(283)  评论(0编辑  收藏  举报

概念理解:

一般用于多对多的关系,用户对应角色表和角色对应职责表,设置该用户对应的角色,设置该角色对应的职责;

设置用户->角色表的权限:

主页面:

<!--功能1:设置权限-->
<div>
<form action="tjchuli.php" method="post">
请选择用户:
<select id="u" name="uid">
<?php
include ("../config/DBDA.php");
$dx=new DBDA();
$sql="select * from user";
$attr=$dx->Query($sql);
foreach($attr as $v)
{
    echo "<option  value='{$v[0]}'>{$v[1]}</option>";
    }
?>
</select>
<br />
请选择角色:
<?php
$sq="select * from juese";
$att=$dx->Query($sq);
foreach($att as $v1)
{
    echo "<input type='checkbox' class='jid' name='jid[]' value='{$v1[0]}' />{$v1[1]}";
    }
?>
<br />
<input  type="submit" value="保存" />
</form>
</div>
//功能2:如何实现每次返回主页面和每次更改用户时出现上一次的显示结果
//思路:根据本次的用户名查到相应的角色,使复选框变为选中状态
//使用工具:jquery/ajax
<script type="text/javascript">
$(document).ready(function(e) {
    Checked();//页面初始化调用此方法
    $("#u").change(function(){
        Checked();//用户名更改调用此方法
    })
//封装一个方法->功能2
  function Checked(){
      var uid=$("#u").val();
    //alert(uid);
//清除原来的选中状态
    $(".jid").prop("checked",false);
      $.ajax({
          url:"chaxun.php",
          data:{uid:uid},
          type:"POST",
          dataType:"TEXT",//获取到另一个页面的返回值,另一个页面必须有值
          success: function(data){
              //选取所有的复选框,一个个判断是否在返回的数组中
              var ar=data.split("|");
              //alert(data);
              var m=$(".jid");
              for(var i=0;i<m.length;i++)
              {
                  if($.inArray(m.eq(i).val(),ar)>=0) //$.inArray(value,array)方法用于判断某个元素在不在数组中,如果在返回所在位置的索引,不在返回-1
                  {
                      m[i].checked="checked";
                      //m.eq(i).prop("checked",true);
                    }
                }
            }
        })
    }
});
</script>

向数据库添加数据的处理页面:

<?php
include ("../config/DBDA.php");
$uid=$_POST["uid"];
$jttr=$_POST["jid"];//要获取到数组,传值为name='a[]'
$dx=new DBDA();
//去重
$sq="delete from udj where uid={$uid}";
$dx->Query($sq,0);
//循环添加数据
foreach($jttr as $v)
{
    $sql="insert into udj (uid,jid) values({$uid},{$v})";
    $r=$dx->Query($sql,0);
}
if($r)
{
    header("location:szqx.php");
    }
else 
{
    echo "设置失败";    
    }
?>

使用ajax转入查询的页面:

<?php
include ("../config/DBDA.php");
$uid=$_POST["uid"];
$dx=new DBDA();
$sql="select jid from udj where uid={$uid}";
$result=$dx->StrQuery($sql);
echo $result;//必须输出才能返回到ajax中