使用HTML5sortable为AJAX序列化数据
我正在使用jQuery的整齐排序插件,HTML5 Sortable http://farhadi.ir/projects/html5sortable/但是还没有找到一种理想的方法来序列化数据以作为AJAX POST请求发送(更新数据库)。
HTML
- One
- Two
- Three
- Four
- Five
jQuery的
$('ul.sortable').sortable().bind('sortupdate', function() { var data = ??; // serialize all data-id's ... this is my problem $.post('/sortupdate.php',data,function(){ // PHP script sets new order in DB alert('updated'); }); });
所以我想要发生的是当我将LI项拖到新位置时, sortupdate
事件应该触发该函数并发送data-id属性值的新顺序。 我目前的想法是遍历LI并将属性值添加到数组中。 有没有更智能的方法,或者,最有效的循环方式是什么? (我主要是你知道的后端人)。 谢谢!
由于插件没有内置的序列化方法,因此必须手动完成。
var dataIDList = $('ul.sortable li').map(function(){ return $(this).data("id"); }).get().join(",");
(这基本上是你在最后描述的,它循环并创建一个列表。)
现在您可以将其作为列表发布:
$.post(url,{ idlist: dataIDList }, completeandler);
您也可以将其作为数组发布,只需删除.join(",");