Практическое руководство сериализирует несколько Списков с JQuery

У меня есть 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 Или и массив или независимо от того, что я могу работать с сохранить состояние?

6
задан Miro 17 September 2015 в 07:03
поделиться

2 ответа

ОБНОВЛЕНО

ДЕМО: 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

, который представляет порядок расположения каждого элемента

10
ответ дан 9 December 2019 в 20:40
поделиться

Заработало благодаря другой теме: 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();
});
2
ответ дан 9 December 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: