JSTREE,dnd - 通过拖放进行SQL数据库更新

时间:2017-10-23 18:27:38

标签: javascript php mysql laravel jstree

我在laravel中设置了一个分层的mysql表(带有示例数据):

id | name   | parent_id
1  | test   | 0
2  | test 2 | 0
3  | test   | 2

我正在使用带有dnd和state插件的JSTree显示这些数据。问题是当你使用dnd(允许列表被拖动/编辑)来移动列表对象时,还需要更新sql表,以便编辑是永久性的,不会在刷新时丢失。 / p>

我不知道从哪里开始?有没有人有任何提示或可以帮助解决方案?

我相信我需要让javascript动作与laravel事件/侦听器交互,以便动态更新sql表。

1 个答案:

答案 0 :(得分:0)

您需要以某种方式将操作发送到服务器,这通常是使用ajax调用完成的。您将侦听move_node事件,然后从树数据中获取所需的相应数据。这里有一些可能有用的代码:

var treeData = {your tree data};
$($tree).jstree({
    core: {
        data: treeData,
        check_callback: function (op, node, parent, position, more) {
            switch (op) {
                case 'move_node':
                    return moveNode(node, parent, position, more);
                case 'copy_node':
                    return copyNode(node, parent, position, more);
            }
        },
        multiple: false
    },
    plugins: ['dnd']
}).on('copy_node.jstree', function(e, data) {
    $app.debug('copy_node completed', data);
}).on('move_node.jstree', function(e, data) {
    // this is where you connect to the server!
    doMoveNode(data);
});
相关问题