我有一個HTML表這樣的:jQuery的排序更新整個數據集
<ul id="sortable">
<li class="ui-state-default" id="31">
list item
</li>
<li class="ui-state-default" id="32">
list item
</li>
<li class="ui-state-default" id="33">
list item
</li>
</ul>
及以下的jQuery功能:
$("#sortable").sortable({
update: function(e,ui){
$.ajax({
url:'/ajaxUpdateOrder',
data: {
id: ui.item.attr('id'),
position: ui.item.index()
}
});
}
});
它工作正常,但我需要的,而不是對通過整套IDs
和priorities
以更新每條記錄而不僅僅是被拖動的那條記錄。
任何幫助或指導,非常感謝。
編輯
從成員之一了很多HELO的,我已成功地修改函數類似以下內容:
$("#sortable").sortable({
update: function(e,ui){
var lis = $("#sortable li");
var ids = lis.map(function(i,el){return {id:el.id, priority:el.dataset.priority}}).get();
console.log(JSON.stringify(ids));
$.ajax({
type: 'POST',
url:'/BetterMeetings/meetings_tasks/ajax_update_order',
data: {
ids:ids
}
});
}
});
但是,我在控制檯得到的數據是一樣這個:
[{"id":"157"},{"id":"158"},{"id":"159"},{"id":"156"},{"id":"160"},{"id":"161"},{"id":"162"},{"id":"163"},{"id":"164"}]
所以它仍然缺少優先順序。
這取決於你的後端期望什麼,展示一個例子 – Gavriel
我只有爲單個記錄更新編寫的後備解決方案,所以基本上任何類型的數據發送到服務都會這樣做,因爲我將爲此調整後端功能。我認爲一個數組數組是一個很好的方法,只是我無法找到jQuery。 – WpDoe
請接受用演示演示回答您的問題的答案,或者根據您的(並非如此)原始「要求」認爲它不是一個好的格式:「發送到服務的任何類型的數據都會這樣做」,然後添加對您的問題的預期結果 – Gavriel