给角色分配菜单向后台提交数据的分析 | 学习笔记

简介: 快速学习给角色分配菜单向后台提交数据的分析

开发者学堂课程【使用 Spring Data Redis+zTree 实现授权模型的设计与思考给角色分配菜单向后台提交数据的分析学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/745/detail/13180


给角色分配菜单向后台提交数据的分析


内容介绍:

一、给角色分配菜单向后台提交数据的分析


一、给角色分配菜单向后台提交数据的分析

跳转到分配菜单的页面,接下来需要给角色真的分配东西,也会有应用,下图中勾选了这么些菜单,也可以取消再勾选别的,如果真的要勾选中这些菜单要点击保存,目的是将这些新勾选的菜单全部添加进数据库中,表示角色已经拥有这些菜单了。说是非彻底应用,是因为这些菜单需要提前拿到,如何拿到这些菜单,是由 ztree 的 api 提供的。

image.png

获取到被选中的框,一般选用的方法是

1.zTreeobj getCheckedNodes
概述【依赖 jquery.zlree.excheck 扩展 js ]
获取输入框被勾迭或未勾选的节点集合。[setting.checkenable = true 时有效]请通过 zTree 对象执行此方法。
Function 参数说明
checked
Boolean
checked = true 表示获取被勾选的节点集合 checked = false 表示获取未勾选的节点集合省略此参数。等同于 true.
对于 treeNode.nochecked = true 的节点不进行获取-返回值
返回全部符合要求的节点柴合 Array

function 举例

(1)获取当前被勾选的节点集合var treeObj = S.fn.zTree.getZTreeobj( tree")y;var nodes = treeobj getCheckedNodes(true);

要想办法将所选的菜单都传送到后台去,后台能写程序,才能将程序存进数据库,点击保存就相当于保存一个表盘,整个页面上有一个大的表单,点击保存就将这个大的表单提交到后台,假设有个form表单

<form>

<input type="hidden" name="oox" value=""

<input type="hidden" name="sooi"value="">

</form>

<input type="hidden" name="oox" value=""是其中一个隐藏域,表示的是当前角色的id,因为要给船运专员分配id,所以需要将船运专业的id传到后台上去,

<input type="hidden" name="sooi"value="">是另一个隐藏域,表示的是勾选的菜单的一个集合,使用逗号分割,假如分割的有很多菜单,编写成一个字符串集合,1,2,3,4,然后将这个字符串集合传到后台去

href="#" onclick "submitCheckedNodes( ) ; formSubmit('roleAction_module , '_self');this.blur();">保存</a></li>点击保存按钮,就在提交数据,

67e<body>

<form name="icform" method="post">

<%--角色的id --%>

<input type="hidden" name="id" value=“${ id}”/>I表单中有两个隐藏域,第一个是hidden,名字叫做id,

<%--勾选的菜单的id,使用,拼接的--%>

<input type="hidden" id="moduleIds" name="moduleIds" value=""/>第二个隐藏域id跟名字都叫做moduleIds,值的显示为空,值是何时赋值上去的,提交一个隐藏域,需要有赋值才有意义

<div id="menubar">

<div id="middLeMenubar">

<div id="innerMenubar">

<div id="navMenubar">

<ul>

<li id="save"><a href="#” onclick="submitCheckedNodes() ;formSubmit( 'roleAction_module ' , '_self' );this.b,

<li id="back"><a href="#”onclick="formSubmit( 'roleAction_list' , '_self' );this.blur(); ">返回</a></li>

</ul>

</div></div>

当值赋值完成以后,点击保存href="#" onclick "submitCheckedNodes( ) ; formSubmit('roleAction_module , '_self');this.blur();">保存</a></li>  ,就会有 onclick,其中有一个函数:submitCheckedNodes,点击保存,会先运行这个函数,后来还有一个函数formSubmit,这个方法的意思是要提交表单,意思是点击保存完成之后,先运行第一个函数,运行完成之后才会提交表单,

2submitCheckedNodes

提交所选中的节点,

/获取所有选择的节点

function submitCheckedNodes() {

var nodes = new Array();

//定义一个新的数组,

nodes = zTreeobj.getCheckedNodes(true);//取得选中的结点

zTreeobj.指刚才生成的ztree的树形对象,//获取到所有勾选的节点的集合,等于拿到所有勾选的节点,

var str = "";

//定义空的字符串

for (i = 0; i < nodes. length; i++) {

写了一个简单的for循环,表示小于数组的i++

//遍历数组,拿到所有选中的节点集合,遍历数组之后可以拿到里面的id值,字符串为空,字符串后面拼接了一个+=,一直拼接,

if (str !="") {

str += ",";

str += nodes[i].id;

l/JQ的代码

$( '#moduleIds ' ).val(str);

</ script>

'head>

<body>

全部拼接完成之后可能会得到如下一个字符串:

//str=1,2,3,4,

$( '#moduleIds ' ).val(str);

用#号赋值给 moduleIds,就是给隐藏域赋值,将str的值赋值给了隐藏域,点击保存,先执行 submitCheckedNodes,拿到所有的隐藏键,生成字符串,然后用逗号分隔开来,拼完之后赋值给隐藏域,再跟随表单一起提交到后台,所以后台接收到两个值,一个是所选择的角色 id,另一个是所勾选的所有的菜单的集合,用逗号分割开来。

相关文章
|
数据安全/隐私保护
fastadmin是如何设置没有权限的用户不能访问某些页面的?
fastadmin是如何设置没有权限的用户不能访问某些页面的?
396 0
|
数据库
Discuz! X3.5 登录不了管理后台的处理方法集合
1. 取消IP认证。由于Discuz!论坛会认证IP,不允许不同IP地址同时登录后台,所以取消IP认证即可。修改方法:在网站根目录,Discuz!配置文件config目录下config_global.php 中找到如下代码:$_config[‘admincp’][‘checkip’] = 1把代码中“1”改成“0”。(修改后允许多IP同时登录后台,所以论坛的安全系数会降低)
816 0
Discuz! X3.5 登录不了管理后台的处理方法集合
|
3月前
|
开发工具 git
大世界项目14-权限拦截控制_未登录无法看到正常页面
大世界项目14-权限拦截控制_未登录无法看到正常页面
|
4月前
|
数据安全/隐私保护
用户及组管理操作
用户及组管理操作
44 0
|
网络架构
后台管理系统——角色分配、粘贴地址跳转至404以及角色分配控制按钮权限
角色分配、粘贴地址跳转至404以及角色分配控制按钮权限
78 0
实现用户登录注册的主页面
实现用户登录注册的主页面
68 0
|
SQL Python
DjangoAdmin后台的一些设置
DjangoAdmin后台的一些设置
99 0
|
前端开发 Java 数据库
给角色分配菜单的功能后台代码的编写 | 学习笔记
快速学习给角色分配菜单的功能后台代码的编写
给角色分配菜单的功能后台代码的编写 | 学习笔记
|
缓存 NoSQL Java
用户和角色的缓存|学习笔记
快速学习用户和角色的缓存
123 0
用户和角色的缓存|学习笔记