我有一个列表,我要排序归功于jQueryUI的可排序功能:
<ul id="list-cat">
<li id="cat_0" >Coach</li>
<li id="cat_1" >Victory</li>
<li id="cat_2" >Defeat</li>
</ul>
我的剧本:
$("#list-cat").sortable({
placeholder: 'highlight',
update: function() {
var order = $('#list-cat').sortable('serialize');
$.post("my url...",order);
alert(order); // displays for example "cat[]=1&cat[]=0&cat[]=2"
}
});
我的网址收到$ _POST ['cat']数组,其中$ order为键,$ id_cat为值。我需要将li值(Coach,Victory等)作为数组值而不是$ id_cat,是否可能?
答案 0 :(得分:1)
将您的ID更改为cat_Coach
,cat_Victory
等
请参阅jQuery UI docs on .sortable("serialize")
:
将sortable的item id序列化为form / ajax submittable字符串。调用此方法会生成一个哈希值,该哈希值可以附加到任何URL,以便轻松地将新的项目顺序提交回服务器。
默认情况下,通过查看“setname_number”格式的每个项目的ID,它会发出一个哈希,例如“setname [] = number&amp; setname [] = number”。
您还可以使用选项哈希作为第二个参数来自定义函数的工作方式。可能的选项是:'key'(用你想要的任何东西替换part1 []),'attribute'(测试另一个属性而不是'id')和'expression'(使用你自己的正则表达式)。
如果serialize返回一个空字符串,请确保id属性包含下划线。它们必须采用以下形式:“set_number”例如,具有id属性foo_1,foo_5,foo_2的3元素列表将序列化为foo [] = 1&amp; foo [] = 5&amp; foo [] = 2。您可以使用下划线,等号或连字符来分隔集合和数字。例如foo = 1或foo-1或foo_1都序列化为foo [] = 1.