ztree增删改查与后台代码的交互,有开发好的,请提供一个例子。
ztree吧
全部回复
仅看楼主
level 4
jkfd2010 楼主
现在我要做一个ztree增删改查的例子,主要是要和后台数据库有交互。例如我在前台增加一个节点,然后通过后台代码,将节点信息保存到数据库中。我之前使用的jstree是这样实现的,如下图:
另外还有一个问题,我在添加一个节点的时候,节点名称竟然是默认的,使我无法在创建的时候输入想要的名称。如下图:
如果能在添加节点的时候,可以输入我想要的名称更好。如下图:
另外,希望作者能在demo中,添加使用ajax与server端进行数据交互的增删改查的例子。
2012年02月24日 10点02分 1
level 11
1、因为 ajax 与 server 端交互的增删改查,一般来说只需要掌握 ajax 与 server 语言交互就可以了,而且这里面方法很多,语言也很多,个人能力、精力都有限,所以的确无法提供这种例子很抱歉了。况且网上每种server 端语言的 ajax 例子和教程也很多,应该是比较方便学习的。
2、了解了 ajax 与 server 交互的原理之后,其实实现增删改查就容易多了。比如增加节点可以先ajax通知后台新增节点,成功后再给 zTree 添加子节点;比如删除节点可以先ajax通知后台删除节点,成功后再通知 zTree 删除相应的子节点即可。
3、addNodes 方法可以添加节点,同时 editName 方法可以让指定的节点进入编辑状态,只需要结合一下就能轻松实现你的功能了。
2012年02月24日 15点02分 2
zTree.addNodes(treeNode, data); zTree.reAsyncChildNodes(zTree.getSelectedNodes()[0],"refresh"); 按照第2点你说的,先ajax通知后台新增节点 然后数据返回 添加到zTree上,问题是新增加的节点无法显示在页面上。上面的刷新父节点下所有子节点的方法好像无效啊??不知道问题出在哪,望指教!
2012年09月04日 03点09分
回复 fanfanyixiao :你的问题比较模糊,很难找到具体原因。 你说的 新增加节点无法显示是js报错? ajax 失败? 还是添加的数据格式不对?
2012年09月06日 02点09分
level 4
jkfd2010 楼主
作者的第2、3点给我提供了思路,我会继续研究以完成增删改查,并分享给大家。谢谢作者能抽出时间帮大家回答和解决问题。另外,我写了一个增加的例子,但是当我调用强行刷新父节点时,子节点都消失了,并且前台也返回了所有子节点的JSON数据。以下是我的代码:
异步加载的配置
添加方法
后台请求,以及返回的数据和错误信息
前台报表节点的状态

2012年02月25日 01点02分 3
level 11
1、reAsyncChildNodes 方法是刷新父节点下面的全部子节点(重新异步加载)
2、你的需求是仅仅刷新这新增的一个节点吗? 那么请直接修改数据的各个属性,如果涉及到节点显示的name等,那么请利用 updateNode 方法进行更新。
2012年02月25日 12点02分 4
level 4
jkfd2010 楼主
1、我调用reAsyncChildNodes方法,是要刷新父节点下的所有子节点,但是现在是有问题的,你也看到了我那个错误截图。首先我想解决调用该方法不重新异步加载的问题。
2、刷新新增的一个节点,通知后台后,怎么把数据库生成的ID赋值给前端的节点呢?
2012年02月25日 16点02分 5
level 11
1、请你先确认 getSelectNodes 方法能得到节点
2、ajax 将数据传递给后台,后台将信息保存入数据库的同时就能得到id值呀然后再将id值生成到 json 数据中,这样 ajax 在 success 的时候不就得到了id了吗? 但你这有个问题呀,既然id是在 server 端生成的,那你可要保证前台js一直能保存着那个已经刚新增的节点数据对象的。否则,你怎么去找到它呢
2012年02月26日 06点02分 6
level 4
jkfd2010 楼主
1、getSelectNodes当然可以获得节点,那个addnodes方法可是参照你提供的demo上,copy过来的,还会有错吗。我alert了一下,提示的是Object。
添加方法:

2012年02月27日 02点02分 7
level 11
这个出错单纯看这一段代码很难找到了,建议:
1、你别使用 min 版本的js ,换上未压缩版本的 zTree 代码,这样可以便于找到错误原因
2、如果还是不行,就把你的页面做成html 的,再把 后台生成的数据文本一起打包发给我看看吧。
2012年02月27日 06点02分 8
level 11
啊,我又仔细看了你上面图片中的数据,难道你真正有效的数据都是 attr 属性里面的吗??如果是这样的话,你生成的数据是有问题的哟
2012年02月27日 06点02分 9
level 4
jkfd2010 楼主
哈哈,作者说我返回的数据有问题,这提醒了我,那些数据确实是有问题,那些数据是我之前用jstree时返回的数据,一时大意没有改过来。呵呵。刚刚写了个新方法,这次返回的数据是对的。这个问题目前已经圆满解决。多谢作者哟。不过我还有一些问题,等整理后,在发到这里,作者要常来看看帮我解决哟。多谢了。
2012年02月27日 09点02分 10
level 11
我肯定会经常来回复的,有问题有想法多沟通吧。
2012年02月27日 13点02分 11
树哥请问一下[$1]我用异步加载从后台取得新节点的id值[$1]var zTree = $.fn.zTree.getZTreeObj("treeDemo"); [$1] var nodes = zTree.getSelectedNodes();[$1]zTree.addNodes(nodes[0], {id:va, pId:nodes[0].id, name:"new Item" + va });[$1][$1][$1]用上面的指令新增新节点后,就不能修任何节点的值
2012年09月26日 03点09分
树哥请问一下[$1]我用异步加载从后台取得新节点的id值 var zTree = $.fn.zTree.getZTreeObj("treeDemo"); var nodes = zTree.getSelectedNodes(); zTree.addNodes(nodes[0], {id:va, pId:nodes[0].id, name:"new Item" + va }); 用上面的指令新增新节点后,就不能修任何节点的值
2012年09月26日 03点09分
回复 James20120926 :你要怎么修改呢? 你可以利用 getNodeByParam 等方法得到node 数据后,直接进行修改,然后利用 updateNode 通知 zTree 修改视图
2012年09月26日 14点09分
回复 zTreeAPI :树哥 我是想要跟楼主一样,让使用者点新增,然后会自动进入新的node,我用过getNodeByParam的方法但是找不到node,我是用sajax的方式产生node,画面也可以正常显示node。
2012年09月27日 03点09分
1