拖放可更新位置mysql

时间:2015-07-13 16:47:49

标签: jquery mysql

我有一个拖放代码,用于更改列表的位置(在屏幕中),但我无法更新MySQL中的新位置

<div class="cf nestable-lists">
  <div class="dd" id="nestable">
        <ol class="dd-list">
            <li class="dd-item" data-id="13">
                <div class="dd-handle">Item 13</div>
            </li>
            <li class="dd-item" data-id="14">
                <div class="dd-handle">Item 14</div>
            </li>
            <li class="dd-item" data-id="15">
                <div class="dd-handle">Item 15</div>
            </li>
        </ol>
    </div>
</div>

我如何获取&#34; data-id&#34;新职位并在MySQL中全部更新?

1 个答案:

答案 0 :(得分:0)

您似乎正在使用可嵌套插件。如果是,您的可嵌套初始化代码应为:

$('#menu_nestable').nestable({
    group: 1, maxDepth: 3
}).on('change', updateOutput);;

'updateOutput'是一种更新所需内容的方法。例如:

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')));
    } else {
        output.val('JSON browser support required for this demo.');
    }
};

正如您所看到的,我可以随时调用我的updateOutput,使用以下行:

updateOutput($('#menu_nestable').data('output', $('#menu_output')));

这将创建一个JSON字符串,它将在元素中使用#menu_output id进行更新。就我而言,就是这个:

<input type='hidden' name="menu_order" id="menu_output"></input>

您现在应该将其发送到您的PHP文件并在那里使用它。就我而言,在我的PHP文件中,我每次发送表单时都会这样做,或者每次通过AJAX连接到我的PHP时,我要么删除数据库中的旧条目并包含新条目,要么我更改它们一个接一个地带着新的价值观。

例如我的新JSON文件的第一个输入将进入数据库的第一个位置,完全替换它,并保留它的ID。

如果您需要更多帮助,请在此处回答。 修改 我忘了提到每次拖放项目时都会自动调用updateOutput方法,即使它位于同一个地方。如果您希望每次拖放时都将新订单保存在数据库中,则应在updateOutput方法中包含AJAX连接,连接到数据库并发送#menu_output的值。