如何保存ztree树的信息?

ellan 发布于 2012/03/01 15:55
阅读 2K+
收藏 0

RT

我在浏览器拖拉操作后,希望能生成类似的格式

[{'id':'x1', 'text':'txxx', 'childrens' : [{ 'id' : 'cx' , 'text': 'cx2' , .....}] }]

现在关键是想知道childrens 里面的数据如何封装????

以下是问题补充:

@ellan:可能是我没说明白吧! 数据由前台转向后台! 怎么在前台生成这种格式的数据! 谢谢大家了! (2012/03/01 20:00)
加载中
0
xiaoyang0878
xiaoyang0878
找 @ 张其纲
0
张金富
张金富

你可以下载zTree v3.1,看里面的代码。

像这样:

var zNodes =[
			{ name:"父节点1 - 展开", open:true,
				children: [
					{ name:"父节点11 - 折叠",
						children: [
							{ name:"叶子节点111"},
							{ name:"叶子节点112"},
							{ name:"叶子节点113"},
							{ name:"叶子节点114"}
						]},
					{ name:"父节点12 - 折叠",
						children: [
							{ name:"叶子节点121"},
							{ name:"叶子节点122"},
							{ name:"叶子节点123"},
							{ name:"叶子节点124"}
						]},
					{ name:"父节点13 - 没有子节点", isParent:true}
				]},
			{ name:"父节点2 - 折叠",
				children: [
					{ name:"父节点21 - 展开", open:true,
						children: [
							{ name:"叶子节点211"},
							{ name:"叶子节点212"},
							{ name:"叶子节点213"},
							{ name:"叶子节点214"}
						]},
					{ name:"父节点22 - 折叠",
						children: [
							{ name:"叶子节点221"},
							{ name:"叶子节点222"},
							{ name:"叶子节点223"},
							{ name:"叶子节点224"}
						]},
					{ name:"父节点23 - 折叠",
						children: [
							{ name:"叶子节点231"},
							{ name:"叶子节点232"},
							{ name:"叶子节点233"},
							{ name:"叶子节点234"}
						]}
				]},
			{ name:"父节点3 - 没有子节点", isParent:true}

		];

就是不断嵌套,没别的东西。

张金富
张金富
制作提交数据的基本方法:拼字符串 后台语言都有相应的json工具类,我也正在研究。
0
zTree
zTree

呵呵,被召唤来了。你就是要把 json 数据拼接成字符串 传给后台吧?

1、网上有很多 jsonToString 的 js 代码例子(但你最好根据自己的需求修正,例如:对于如果属性是 function 的就不要封装了;例如:对于后台无意义的属性也不用封装了)

2、如果完全按照 嵌套的JSON 生成字符串,那么后台解析时也要嵌套的解析生成 JSON 对象,你保存到数据库时还是需要递归遍历,这样应该不是最优的选择。

3、使用简单数据模式(id、pId),并且建议直接使用 transformToArray 方法,将 getNodes 得到的全部节点数据都转化为 Array 数组,简单 for 循环即可生成 json 格式的字符串。(务必注意:children千万不要进行转换了,直接过滤掉,否则会出现数据重复。) 这样后台得到的是简单的对象数组,而且 id 、pId 也能保存其父子关系; 直接for 循环即可批量保存数据库,不需要反复递归遍历。

4、后台解析 JSON 字符串的工具类包也很多,选择你那种server 语言的工具类即可。

如有问题请继续沟通。

小-菜
小-菜
我说生成的怎么全是重复数据。。。
小-菜
小-菜
唉。。这些真应该在文档里说明一下。。。
0
ellan
ellan

谢谢了!

最近几天在忙 没有回信息!

返回顶部
顶部