我有一个拖放代码,用于更改列表的位置(在屏幕中),但我无法更新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中全部更新?
答案 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的值。