开发者社区> 问答> 正文

连续新增的ztree节点不行,必须刷新一次页面增加一个。 403.10 禁止访问:配置无效 

@zTree 你好,想跟你请教个问题:
本人菜鸟,目前在Yii框架下,为了实现层级管理,要用到ztree,后台数据方法都已经写好,前端添加节点的代码如下:

function addHoverDom(treeId, treeNode) { var sObj = $("#" + treeNode.tId + "span"); if (treeNode.editNameFlag || $("#addBtn"+treeNode.tId).length>0) return; var addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='add node' onfocus='this.blur();'></span>"; sObj.after(addStr); var btn = $("#addBtn_"+treeNode.tId); if (btn) btn.bind("click", function(){ var zTree = $.fn.zTree.getZTreeObj("treeDemo"); //zTree.addNodes(treeNode, {id: newCount, pId:treeNode.id, name:"new node"}); var pId = treeNode.id; var id = zNodes.length + newCount; var name = "new node"; var level = treeNode.level + 2 ; var url = "AddNode"; var data = {}; data['id'] = id; data['name'] = name; data['pId'] = pId; data['level'] = level; $.ajax({ type:"POST", url:url, data:data, success: function(msg){ alert("节点名称添加成功"); } }); zTree.addNodes(treeNode, {id: (zNodes.length + newCount), pId:treeNode.id, name:"new node"}); return false; }); };

    目前的情况是无法连续增加新的节点,必须每次增加一个节点后刷新一次页面后再增加,否则刚添加的节点无效。分析原因是每次取到的zNodes是通过后台写入的,只有刷新一次页面后台的数据才会更新进到zNodes里,所以如果不刷新zNodes.length的值是不变的,so,这种情况怎么处理,这里的var id赋什么样的参数比较合理,多谢赐教!

展开
收起
kun坤 2020-05-27 14:15:19 849 0
1 条回答
写回答
取消 提交回答
  • 使用ajax发送请求,返回后台生成的id即可。######

    引用来自“生吃番茄酱”的评论

    使用ajax发送请求,返回后台生成的id即可。
    多谢,现在新的情况是:我不需要返回id值,因为数据库id是自增的,我只需要将pid,name压入数据库就好了,但是var pId = treeNode.id有时候得到的pId值不对,在已有的节点上增加新的节点没有问题,在刚新增的节点上连续增加新的节点时,pId取到的值就不对了。
    2020-05-27 17:17:30
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载