ajax 怎么获取id节点,通过ajax 后台传递的 区域id 选中ztree的节点 并展开节点

代码如下:

< script type = "text/javascript" >

var flag = "

flag ")%>";

if (flag != "true") {

flag = false;

} else {

flag = true;

}

var reginTree = {

setting: {

view: {

fontCss: {

color: "#000"

}

},

check: {

enable: true,

chkboxType: {

"Y": "p",

"N": "p"

}, //加上ps  当点击父节点时子节点全部选中

children: "children"

},

data: {

key: {

checked: "checked"

},

simpleData: {

enable: true,

idKey: "id",

pIdKey: "pId",

rootPId: 0

}

}

},

//获取ztree对象

getZtreeObj: function(id) {

var zTree;

if ($.fn.zTree.getZTreeObj(id) != null && $.fn.zTree.getZTreeObj(id) != undefined) {

zTree = $.fn.zTree.getZTreeObj(id);

}

return zTree;

},

//初始化ztree

loadZtree: function(json, id, treeNode, callback) {

var setter = $.extend({}, reginTree.setting, json);

$.fn.zTree.init($('#' + id), setter, treeNode);

var zTree = reginTree.getZtreeObj(id);

if (callback) callback();

},

//加载ztree

loadArea: function(bal, regionIdList) {

var regionJson = {

"level": "2"

};

var treeNode = [];

_public_.getJson(regionJson, "frontServer?busiCode=02060203").done(function(data) {

if (data.returnCode == "Y") {

for (var i = 0; i < data.regionList.length; i++) {

var id = data.regionList[i].rid;

var pId = data.regionList[i].pid;

var name = data.regionList[i].regionName;

var json = {

"id": id,

"name": name,

"pId": pId

};

if (bal) {

if (reginTree.setbal(regionIdList, json.id)) {

json.checked = true;

}

}

treeNode.push(json);

}

console.dir(treeNode);

} else {

console.log("加载数据失败");

}

reginTree.loadZtree({

callback: {

onCheck: reginTree.zTreeOnCheck

}

}, 'tree', treeNode, function() {

var treeObj = reginTree.getZtreeObj('tree');

var nodes = treeObj.getCheckedNodes(true);

$.each(nodes, function(i, value) {

treeObj.expandNode(value, true, false, true);

});

});

});

$('#tree').css({

'width': '400px',

'height': '450px',

'overflow': 'auto'

});

$('#tree').parent().css({

'width': $('#tree').get(0).offsetWidth + 'px',

'height': $('#tree').get(0).offsetHeight + 'px'

});

},

//ztree节点选中   当选中节点时树形 结构展开

zTreeOnCheck: function(event, treeId, treeNode) {

var treeObj = reginTree.getZtreeObj('tree');

if (treeNode.checked == true) {

//单选控制

treeObj.checkAllNodes(false);

treeObj.checkNode(treeNode, true, true, false);

var oner = treeObj.getCheckedNodes(true);

treeObj.expandNode(treeNode, true, false, true);

}

/* var nodes = treeObj.getCheckedNodes(true);

console.dir(nodes); */

/* var treeObj = reginTree.getZtreeObj('tree'),

nodes = treeObj.getCheckedNodes(true),

v = "";

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

v += nodes[i].name + ",";

alert(nodes[i].id + "," + v); //获取选中节点的值

} */

},

getCheckNode: function(id, bal, param) {

var zTree = reginTree.getZtreeObj(id);

var nodes = zTree.getCheckedNodes(bal);

var arr = [];

var i = 0;

var len = nodes.length;

console.dir(nodes);

for (i = 0; i < len; i++) {

arr.push(nodes[i][param]);

}

return arr.join();

},

setbal: function(regionIdList, id) {

var arr = regionIdList.split(',');

var i = 0;

var len = arr.length;

for (i = 0; i < len; i++) {

if (arr[i] == id) {

return true;

break;

}

}

}

};

$(function() {

$(".submit").on("click", function() {

var regionIds = reginTree.getCheckNode("tree", true, "id");

if (flag == true) {

var jsonr = {

"regionIds": regionIds

};

_public_.getJson(jsonr, "frontServer?busiCode=SYSRegionGetAllName").done(function(data) {

window.opener.setRegionIds(data.regionAllName, regionIds);

window.close();

});

} else {

window.opener.setRegionIds("", regionIds);

window.close();

}

});

});

var regionJson = {};

var regionIdList = window.opener.getRegionIds();

var bal = false;

if (regionIdList != null || regionIdList != "") {

/* regionJson = {"regionIdList":regionIdList}; */

bal = true;

}

//console.dir(regionJson);

reginTree.loadArea(bal, regionIdList); < /script>

ajax向后台传递数组参数并将后台响应的数据赋值给一个变量供其它插件使用

1.在js中封装ajax向后台传递数组参数函数 //combogrid * * @Description 封装ajax向后台传递数组参数并将后台响应的数据赋值给一个变量方便其他插件使用该数据函数 * ...

ajax获取后台传递的json数据

最近在使用JQuery的ajax方法时,需要返回的数据为json数据,在success返回中数据处理会根据返回方式不同会采用不同的方式来生成json数据.在$.ajax方法中应该是如何来处理的,简 ...

ajax如何向后台传递数组,在后台该如何接收的问题(项目积累)

一.后台如何接收从前台接收的数组: 使用request.getParameterValues(String xxx);

【转】jQuery&period;ajax向后台传递数组问题

$.ajax({ url: "/xxx", type: "GET", data: { "boxIds": boxIds, "box ...

jQuery&period;ajax向后台传递数组问题

今天重温了一个问题,jQuery.ajax向后台传递一个数组,而在后台接收不到该值 前台js方法部分代码如下: //创建一个测试数组 var boxIds = new Array(); boxIds. ...

Ajax向前后台传递json和转换

学生管理系统MVC模式设计心得: jquery .ajax提交data数据格式 jquery 的Ajax方法提交数据,但是是多个参数,具体data的格式如下: data提交的数据类型为:Object  ...

基于layUI调用后台数据实现区域信息级联查询

基于layUI调用后台数据实现区域信息级联查询 1.基本思路 后台提供根据区域编码查询区域列表公共接口 页面初始化调用后台接口加载所有省份 点击省份将省份区域编码传入后台查询该省份下所有地市信息,以此 ...

jquery 根据后台传递过来的三维数组动态生成三级菜单

根据后台传递过来的三维数组动态生成三级菜单

jquery ajax post 传递数组 ,多checkbox 取值

jquery ajax post 传递数组 ,多checkbox 取值 http://w8700569.iteye.com/blog/1954396 使用$.each(function(){});可以 ...

随机推荐

使用File查询出所有的文件和目录的信息

public class Test34 { public static void main(String[] args) { File f=new File("f:"); File ...

struts文件上传、文件下载

文件上传 如果在表单中上传文件,表单的enctype属性为multipart/form-data struts默认上传文件大小为2M,如果需要修改,在配置文件中设置

&lbrack;转&rsqb;oracle EBS 基础100问

from:http://www.cnblogs.com/xiaoL/p/3593691.html  http://f.dataguru.cn/thread-51057-1-1.html 1001 OR ...

从XML文件乱码问题,探寻其背后的原理

出现应用程序读取XML文件乱码的场景: 加入xml文件以<?xml version="1.0" encoding="utf-8" ?> 格式的:如果 ...

Android自定义圆形图片工具类&lpar;CTRL&plus;C加CTRL&plus;V直接使用&rpar;

先贴一下工具类的代码!可直接复制粘贴 public class RoundImageView extends ImageView { private Paint mPaint; //画笔 privat ...

eclipse中Debug简单记忆

最左边:代码一步一步的走,进入函数也是一步一步的走: 最中间:在断点开始一步一步的走,遇到函数不会进入函数,而是直接跳过函数(但是把函数中的代码整体走完的): 最右边:断点开始一部迅速返回上一级函数调 ...

【转载】 程序员制作996&period;icu网站抗议加班,你认为996能提高工作效率吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 Spring Boot 框架,带有复选框的 ZTree 只能选择最后一级节点的 Java 代码和 JavaScript 代码: Java 代码: ```java // 定义 ZTree 节点类 public class ZTreeNode { private Integer id; private Integer pId; private String name; private boolean open; private boolean checked; private boolean isParent; // getter 和 setter 方法 } // 获取 ZTree 数据 @RequestMapping("/getZTreeData") @ResponseBody public List<ZTreeNode> getZTreeData() { // 从数据库或其他数据源中获取节点数据 List<Node> nodeList = nodeService.getAllNodes(); // 将节点数据转换为 ZTree 节点 List<ZTreeNode> zTreeNodeList = new ArrayList<>(); for (Node node : nodeList) { ZTreeNode zTreeNode = new ZTreeNode(); zTreeNode.setId(node.getId()); zTreeNode.setPId(node.getParentId()); zTreeNode.setName(node.getName()); zTreeNode.setOpen(node.getIsOpen()); zTreeNode.setChecked(false); zTreeNode.setIsParent(node.getIsParent()); zTreeNodeList.add(zTreeNode); } return zTreeNodeList; } // 保存 ZTree 节点数据 @RequestMapping("/saveZTreeData") @ResponseBody public String saveZTreeData(@RequestParam("nodeIds") String nodeIds) { // 将字符串类型的节点 ID 转换为数组 String[] nodeIdArray = nodeIds.split(","); // 只保留最后一级节点ID List<Integer> lastLevelNodeIds = new ArrayList<>(); for (String nodeId : nodeIdArray) { Node node = nodeService.getNodeById(Integer.parseInt(nodeId)); if (node.getIsLeaf()) { lastLevelNodeIds.add(Integer.parseInt(nodeId)); } } // 保存最后一级节点ID nodeService.saveLastLevelNodeIds(lastLevelNodeIds); return "success"; } ``` JavaScript 代码: ```javascript // 初始化 ZTree var setting = { check: { enable: true, chkStyle: "checkbox" // 复选框 }, data: { simpleData: { enable: true } }, callback: { // 点击节点时触发 onClick: function(event, treeId, treeNode) { var treeObj = $.fn.zTree.getZTreeObj(treeId); treeObj.checkNode(treeNode, !treeNode.checked, false); } } }; var zTreeObj = $.fn.zTree.init($("#ztree"), setting, zTreeNodeList); // 保存选中节点 $("#saveBtn").click(function() { var checkedNodes = zTreeObj.getCheckedNodes(true); var nodeIds = ""; for (var i = 0; i < checkedNodes.length; i++) { if (!checkedNodes[i].isParent) { nodeIds += checkedNodes[i].id + ","; } } if (nodeIds.length > 0) { nodeIds = nodeIds.substring(0, nodeIds.length - 1); } $.ajax({ url: "/saveZTreeData", type: "POST", data: {"nodeIds": nodeIds}, success: function(data) { if (data == "success") { alert("保存成功!"); } else { alert("保存失败!"); } } }); }); ``` 上述代码中,Java 部分根据数据库或其他数据源中的节点数据,将其转换为 ZTree 节点,并返回给前端。前端使用 JavaScript 初始化 ZTree,设置复选框样式,以及点击节点时的操作。当用户点击保存按钮时,前端将选中节点 ID 发送给后端,后端只保留最后一级节点ID 并进行保存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值