我正在使用JQuery UI的排序功能来排序列表#sortable
,方法是将每个元素拖动到所需的顺序。然后通过AJAX发送JS/JQuery数组然后发送
我储存的项目在li
id
属性(我知道这是无效的)的id
,并在rel
属性的元素的order
。
因此,例如:
<li id="23" rel="1">First</li>
<li id="20" rel="2">Second</li>
<li id="24" rel="3">Third</li>
我的代码成功更新rel
当我拖放li
元素 - 这是好的。
现在,当我点击提交按钮时,我想通过AJAX发送一个数据数组到我的脚本,它将执行更新查询。理想情况下,id
将是key
和rel
值将是'价值。
array(
23 => 1
20 => 2
24 => 3
)
这里是我的代码至今:
$('#submit').click(function(e) {
e.preventDefault();
//array
var the_data = [];
$('#sortable li').each(function() {
the_data[$(this).attr('id')] = $(this).attr('rel');
});
console.log(the_data);
});
我越来越undefined
很多次的萤火,但如果我展开它,所有的值都是存在的,可能有人请解释什么是错误?至少对我来说这是有道理的。
向AJAX发送数据数组的最佳方式是什么?我已阅读关于Jquery的.param()
以及serialize
有没有这方面的最佳实践?
我的ajax:
myData=Jquery.param(the_data); //serialize the array?
$.ajax({
type: "POST",
url: "<?php echo base_url(); ?>admin/update_order/",
data: myData,
success: function(msg) {
alert('Updated');
},
error: function(msg) {
alert(msg);
}
});
感谢。
英雄所见略同。 :) – Gregg 2011-04-27 18:45:50