У меня есть 3 поддающихся сортировке ул. и простой jquery/javascript
<ul class="sortable" id="menu1">
<li id="id_1">whatever</li>
<li id="id_2">you</li>
</ul>
<ul class="sortable" id="menu2">
<li id="id_3">wanne</li>
<li id="id_4">put</li>
</ul>
<ul class="sortable" id="menu3">
<li id="id_5">in</li>
<li id="id_6">here</li>
</ul>
$(function() {
$("ul.sortable").sortable({
connectWith: 'ul'
});
});
</script>
LI перемещаем между ул., Как я могу сериализировать это так, я получаю, например, menu1 [0] =1&menu1 [1] =3 Или и массив или независимо от того, что я могу работать с сохранить состояние?
ОБНОВЛЕНО
ДЕМО: http://jsbin.com/evoru4/2
В вашем случае используйте это:
$(function() {
$("ul.sortable").sortable({
connectWith: '.sortable',
update: function(event, ui) {
var position = $('.sortable').serial();
alert( position );
}
});
});
// эта функция делает ваш UL LI сериализованным объектом
(function($) {
$.fn.serial = function() {
var array = [];
var $elem = $(this);
$elem.each(function(i) {
var menu = this.id;
$('li', this).each(function(e) {
array.push(menu + '[' + e + ']=' + this.id);
});
});
return array.join('&');
}
})(jQuery);
, который дает вам что-то вроде этого:
menu1[0]=id_1&menu1[1]=id_2&menu2[0]=id_4&menu2[1]=id_6&menu3[0]=id_5&menu3[1]=id_3
, который представляет порядок расположения каждого элемента
Заработало благодаря другой теме: link text
$(function() {
$(".sortable").sortable(
{
connectWith: 'ul',
stop : function ()
{
$.ajax(
{
type: "POST",
url: "update.php",
data:
{
sort1:$("#menu1").sortable('serialize'),
sort2:$("#menu2").sortable('serialize'),
sort3:$("#menu3").sortable('serialize')
},
success: function(html)
{
alert(html);
}
});
}
}).disableSelection();
});