RK.*_*RK. 1 javascript php ajax jquery codeigniter
目前,我正在使用Codeigniter处理该项目,并面临我无法解决的挑战.
以下是观点:

如上图所示,有多个角色和权限可用.每个角色都有不同的权限存储在数据库中.此外,用户一次可以拥有多个角色.
目前,我可以选择用户的多个角色和权限,并且可以成功添加到数据库中.但问题是每个角色已经将其权限存储在数据库中.所以,我想让它更加用户友好和明智,当我检查任何User Role复选框然后使用Jquery/Javascript时,它应该自动检查所有相关的permissions复选框,以便了解哪个角色具有哪些权限.
有帮助吗?
我会按照以下方式给每个预先设定一个值
角色的值将是他们拥有的预设的总和
所以
然后取最高的预分配值(在这种情况下为8)并检查已检查的角色.
1 - 1 = 0不小于0,所以预先1.
$(".role").on("click", function(){
$(".perm").prop("checked", false);
$(".role:checked").each(function() {
var reduceBy = maxFromDatabase;
var roleRight = $(this).data("rights");
while(reduceBy != 0) {
if(!(roleRight - reduceBy < 0)) {
$("input[data-right-val='"+reduceBy+"']").prop("checked", true);
roleRight = roleRight-reduceBy;
}
reduceBy = Math.floor(reduceBy/2);
}
});
});
Run Code Online (Sandbox Code Playgroud)您可以检查这个小提琴的html(我使用数据属性)实现http://jsfiddle.net/8dcp4Lvk/3/
我将值放在html的数据属性中.我喜欢这个系统,因为它易于维护.您不需要在角色和提交之间的数据库中添加额外的表,添加预设或删除一个表就像从角色值中添加或删除它的值一样简单.
在小提琴中,您需要做的就是添加一个值为64的新预设,第一个角色为64(71),maxFromDatabase为64(通常在查询时使用此值,与所有数据值).添加的好处是您也可以以相同的方式在PHP代码中使用这些值.
你可以扩展它.为角色赋予类似premission(1,2,4等)的值,您可以将其用于用户.给他两个专栏(角色和预备),你给他的角色,他给你的角色,并在预先分配你分配的总数.这样你只需要一些额外的colums,而不是额外的表.
| 归档时间: |
|
| 查看次数: |
2343 次 |
| 最近记录: |