Необычное сообщение AJAX на клике - PullRequest
0 голосов
/ 11 сентября 2018

Я использую 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>)

Почему это?

1 Ответ

0 голосов
/ 12 сентября 2018

Метод

tree.getSelectedNodes()

возвращает массив FancytreeNode объектов.Вам необходимо преобразовать это в простые объекты, чтобы функция $.ajax могла его сериализовать.

Например, переберите массив и используйте node.toDict().

...