如何更改jquery ui可排序返回的内容
How to change what jquery ui sortable return?
我有一个CMS,让我的用户通过jquery ui排序菜单。
jquery ui返回什么?
我使用了以下代码:
JavaScript:$( "#menuUl" ).sortable({
update: function (event, ui) {
var data = $(this).sortable('serialize');
console.log(data);
}
})
html: echo '<ul id="menuUl">';
$i=0;
while($row=mysql_fetch_array($result_select_menu)){
$i++;
echo '<li name="asdsad" id="li-'.$row['menu_id'].'" class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>'.$row['title'].'<input type="hidden" value="" id="hidden-'.$row['menu_id'].'" class="hiddenClass" name="id['.$row['menu_id'].']"/></li>
';
}
echo '</ul>';
javascript是这么写的:
李[]= 2,李[]= 1,李[]= 3,李[]= 4,李[]= 5,李[]= 6,李[]= 7,李[]= 8,李[]= 9,李[]= 10,李[]= 11,李[]= 12,李[]= 13,李[]= 14
我需要知道哪个li有哪个数字。:
李[1]= 2,李[2]= 1,李[3]= 3,李[4]= 4,李[5]= 5,李[6]= 6,李[7]= 7,李[8]= 8,李[9]= 9,李[10]= 10,李[11]= 11,李[12]= 12,李[13]= 13,李[14]= 14
我的另一个问题是:我可以改变什么序列化返回,例如序列化返回li[]=1,但我需要说li[1]=1
有一些方法可以做到这一点,我认为您应该使用序列化,然后通过Ajax将其发送到服务器端页面。
这是一个很好的答案,你写订单到数据库
开箱操作:不,你不能这样做。sortable.serialize()
返回一个按照$.param()
规范格式化的字符串。最接近开箱即用的方法是sortable.toArray()
、JSON.stringify()
和JSON.parse()
。
至于手动操作,因为这是有序的,并且只包含li
s,将其转换为您说您想要的格式并不困难:
var data = $(this).sortable('serialize');
var i = 0;
while(data.indexOf("li[]") !== -1) {
data = data.replace(/li'[']/, "li[" + (i++) + "]");
}
将第一个字符串转换为
li[0]=2&li[1]=1&li[2]=3&li[3]=4&li[4]=5&li[5]=6&li[6]=7&li[7]=8&li[8]=9&li[9]=10&li[10]=11&li[11]=12&li[12]=13&li[13]=14
请记住,您需要自己维护这个,并且它只适用于您绝对需要保留数组索引的情况。
相关文章:
- 从多个数组中返回最近排序的日期
- 如何对姓氏进行排序,格式化电话号码,并返回一个包含对象数组值的字符串
- 返回相同排序的排序函数
- 如何返回按键值排序的Riak对象
- 返回所有DOM元素的数组,按深度排序
- 返回键的javascript排序函数
- JQuery 函数在调用后不返回以使表可排序
- JavaScript 中的合并排序返回重复的元素
- 如果关联数组从正则表达式返回,则对索引进行排序
- 排序 Jquery 返回的 HTML 元素
- 如何排序这个jQuery tha运行ajax然后必须返回true
- 对数组进行排序并返回一个指示符数组,该数组指示已排序的元素相对于原始元素(new)的位置
- 我该如何调整.当它执行getJSON以返回按日期排序的结果时
- 排序日期不返回已排序的日期
- JavaScript函数返回按计数排序的唯一值
- 排序方法为什么差返回
- 对嵌套数组进行排序的最佳方式(返回值与sort&math.max)
- 如何对webservice返回的xml进行排序
- 按日期对返回的JSON数组进行排序
- Jquery ajax返回排序后的数据