使用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(",");