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

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

开发者学堂课程【使用 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,另一个是所勾选的所有的菜单的集合,用逗号分割开来。

相关文章
QSoundEffect(qaudio): Error decoding source
QSoundEffect(qaudio): Error decoding source
458 0
|
Linux 开发工具 Android开发
python之实现apk
python之实现apk
|
存储 监控 数据可视化
|
数据可视化
Open3d Point cloud outlier removal 点云异常值移除
Open3d Point cloud outlier removal 点云异常值移除
433 1
|
Python
Python使用飞桨报错NameError: name 'predict_system' is not defined问题处理
【5月更文挑战第12天】Python使用飞桨报错NameError: name 'predict_system' is not defined问题处理
1044 1
|
JSON 小程序 安全
微信小程序介绍、账号申请、开发者工具目录结构详解及小程序配置
微信小程序介绍、账号申请、开发者工具目录结构详解及小程序配置
[Halcon&几何] 直线的垂线与延长线的计算
[Halcon&几何] 直线的垂线与延长线的计算
725 1
宜搭标准版、尊享版新增权益的通知
宜搭标准版、尊享版新增0代码门户及数据卡片功能
1992 0
|
缓存 Linux
Linux本地挂载ISO镜像文件并自建YUM源
Linux本地挂载ISO镜像文件并自建YUM源
704 0
|
JavaScript 数据可视化 关系型数据库
小满nestjs(第二十四章 nestjs 连接数据库)
Nestjs 集成数据库,由于企业用的Mysql 居多 我们就用Nestjs 连接 Mysql
685 0
小满nestjs(第二十四章 nestjs 连接数据库)