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

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

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

相关文章
|
自然语言处理
ChatGPT Prompt顶级思维框架:LangGPT
ChatGPT作为当前最先进的对话生成模型,能够满足各种文本生成需求。然而,要充分利用其强大的功能,合理而全面的指令设置(Prompt Engineering)是关键。 今天,我要与大家分享一种名为“LangGPT”的思维框架,它可以帮助你更有效地构建ChatGPT的提示词。
lda模型和bert模型的文本主题情感分类实战
lda模型和bert模型的文本主题情感分类实战
467 0
|
前端开发 安全 关系型数据库
PHP在Web开发中的应用及其优势###
【10月更文挑战第16天】 — 本文探讨了PHP在现代Web开发中的广泛应用及其显著优势。通过分析PHP的核心特性,如灵活性、易用性和广泛的应用支持,阐述了为何PHP成为众多开发者和公司的首选技术。文章还介绍了PHP与其他编程语言的比较,并展望了其未来的发展趋势。 ###
231 2
|
Cloud Native 持续交付 云计算
云原生架构:重塑企业IT的未来####
本文深入探讨了云原生架构的兴起背景、核心理念、技术优势以及在现代企业IT系统中的应用实践。云原生架构以其高度的灵活性、可扩展性和敏捷性,正逐步成为企业数字化转型的关键驱动力。通过容器化、微服务、持续集成/持续部署(CI/CD)等关键技术,云原生架构能够加速软件开发周期,提升系统稳定性和运维效率,为企业带来前所未有的商业价值。 ####
237 0
|
存储 监控 数据可视化
|
移动开发 算法 前端开发
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
382 0
|
存储 运维 监控
深入理解 Linux 文件系统的层次结构
【4月更文挑战第14天】本文将探讨 Linux 操作系统的文件系统层次结构,这是每个系统管理员和开发人员必须掌握的核心知识。我们将从文件系统的顶层目录开始,逐步深入到每个目录的特定用途和重要性,以及它们如何协同工作以支持 Linux 系统的正常运行。
|
JSON 小程序 安全
微信小程序介绍、账号申请、开发者工具目录结构详解及小程序配置
微信小程序介绍、账号申请、开发者工具目录结构详解及小程序配置
|
存储 传感器 缓存
面向嵌入式系统的轻量级框架分析
面向嵌入式系统的轻量级框架分析
334 1
[Halcon&几何] 直线的垂线与延长线的计算
[Halcon&几何] 直线的垂线与延长线的计算
787 1