我正在使用一个简洁的 jQuery 排序插件,HTML5 Sortablehttp://farhadi.ir/projects/html5sortable/ http://farhadi.ir/projects/html5sortable/但还没有找到一种理想的方法来序列化数据以作为 AJAX POST 请求发送(以更新数据库)。
HTML
<ul class="sortable">
<li data-id="1">One</li>
<li data-id="2">Two</li>
<li data-id="3">Three</li>
<li data-id="4">Four</li>
<li data-id="5">Five</li>
</ul>
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(",");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)