Как я могу отправить это несколько json onChange в GET или POST - PullRequest
1 голос
/ 05 февраля 2020

Я делаю некоторое переупорядочение и перемещаю некоторые элементы между списками. Я хочу поместить ВСЕ измененные сериализованные выходы в переменную (по порядку) и отправлять их по почте (или получать) каждый раз, когда один из них изменяется. Я пытаюсь, но я понял, что я не могу применить onChange к текстовой области, которая содержит сериализованный вывод, потому что иногда бывают случаи (перемещение элемента между списками), когда два изменяются одновременно. Как я могу это сделать? Я думаю, что новый json со всеми отдельными jsons тоже будет в порядке. Я использовал этот код: https://dbushell.com/Nestable/
https://github.com/dbushell/Nestable

        var updateOutput = function(e)
        {
            var list   = e.length ? e : $(e.target),
                output = list.data('output');
            if (window.JSON) {output.val(window.JSON.stringify(list.nestable('serialize')));/*, null, 2));*/}
            else {output.val('JSON browser support required for this demo.');}
        };
        // activate Nestable for list 1
        $('#nestable1').nestable({group: 1})
        .on('change', updateOutput);
        // activate Nestable for list 2
        $('#nestable2').nestable({group: 1})
        .on('change', updateOutput);
        // output initial serialised data
        updateOutput($('#nestable1').data('output', $('#nestable1-output')));
        updateOutput($('#nestable2').data('output', $('#nestable2-output')));
        $('#nestable-menu').on('click', function(e)
            {
                var target = $(e.target),
                action = target.data('action');
                if (action === 'expand-all')   {$('.dd').nestable('expandAll');}
                if (action === 'collapse-all') {$('.dd').nestable('collapseAll');}
            });
    });

1 Ответ

0 голосов
/ 05 февраля 2020

Начальный ответ

onListUpdate - это правильный метод, в котором вы должны написать свой почтовый индекс.

Вы можете использовать JQuery Почтовый метод .

Быстрый пример Пример:

     var updateOutput = function(e)
        {
            var list   = e.length ? e : $(e.target),
                output = list.data('output');
            if (window.JSON) {output.val(window.JSON.stringify(list.nestable('serialize')));/*, null, 2));*/}
            else {output.val('JSON browser support required for this demo.');

$.post( "test.php", output.val );

}
        };

Или может быть: list.nestable('serialize')

Отслеживание изменений

Я бы добавил дополнительные атрибуты / данные в ваши поля. Итак, у вас есть поле children. Я также добавил бы parent атрибут данных. Кроме того, я бы добавил previousParent. Таким образом, вы сможете определить, когда текущий родитель не совпадает с предыдущим родителем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...