【问题标题】:fancytree post ajax on click花式树点击发布ajax
【发布时间】:2019-09-06 14:41:12
【问题描述】:

我正在使用 fancytree 从 mysql 数据源创建树结构...

https://github.com/mar10/fancytree/wiki

我想在改变这个结构时更新数据库,这是我的代码

$("#tree").on("fancytreeclick", function(event, data){

  var nodes = $('#tree').fancytree("getTree").getSelectedNodes();
  console.log(nodes);

  $.ajax({
    type : 'POST',
    url  : 'call/myclass.php',
    data : {
      selected : nodes,
      tipo : "update",
    },
    success :  function(data) {
      // nothing
    },

    error: function(data) { 
      console.log(data);
    },
  });

});

但我收到此错误

Uncaught RangeError: Maximum call stack size exceeded
at Function.isArray (<anonymous>)

为什么会这样?

【问题讨论】:

    标签: jquery ajax fancytree


    【解决方案1】:

    方法

    tree.getSelectedNodes()
    

    返回FancytreeNode 对象的数组。您需要将其转换为普通对象,以便$.ajax 函数可以对其进行序列化。

    例如遍历数组并使用node.toDict():

    var selNodes = $("#tree").fancytree("getTree").getSelectedNodes();
    var selData = $.map(selNodes, function(n){
      return n.toDict();
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多