我在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表。
答案 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);
});