2011-11-21 55 views
0

我有一个列表我会整理感谢jQueryUI的的排序fonction:修改的顺序排列)(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,这有可能吗?

回答

1

改变你的IDS是cat_Coachcat_Victory

jQuery UI docs on .sortable("serialize")

序列化可排序的项目的ID到表单/ AJAX submittable字符串。调用这个方法会产生一个哈希,它可以被附加到任何url,以便轻松地将新的物品订单提交回服务器。

默认情况下,它通过查看每个项目的格式'setname_number'的id来工作,并且它吐出一个像“setname [] = number & setname [] = number”的散列。

您也可以在选项散列中作为第二个参数来自定义函数的工作方式。可能的选项是:'key'(用你想要的任何东西替换part1 []),'attribute'(测试另一个属性而不是'id')和'expression'(使用你自己的正则表达式)。

如果serialize返回空字符串,请确保id属性包含下划线。它们的格式必须是:“set_number”例如,具有id属性foo_1,foo_5,foo_2的3个元素列表将序列化为foo [] = 1 & foo [] = 5 & foo [] = 2。您可以使用下划线,等号或连字符来分隔组和数字。例如,foo = 1或foo-1或foo_1全部序列化为foo [] = 1。

+0

非常感谢;) – Anon