Я использую сортировку JQuery UI для сортировки списка #sortable
, перетаскивая каждый элемент в нужном порядке.
Я храню id
элемента в атрибуте li
id
(я знаю, что это недопустимо) и order
элемента в атрибуте rel
.
Так, например:
<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
много раз в FireBug, но если я разверну его, все значения есть, может кто-нибудь объяснить, что не так? Это имеет смысл для меня, по крайней мере.
Как лучше всего отправить массив данных в AJAX? Я читал о Jquery .param()
, а также serialize
Есть ли лучшие практики для этого?
Мой Аякс:
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);
}
});
Спасибо.