0

我正在使用 jQuery UIs Sortable 来允许用户从 4 列中移动项目以及更改每列中项目的顺序。我让后者工作没有问题;将新订单更新到数据库。

但我不确定如何处理从 A 列到 B 列的存储移动。每个无序列表都有一个唯一的 ID,所以我想将这些信息一起发送;我只是不知道如何做到这一点。

$("#list1, #list2, #list3, #list4").sortable({ 
    connectWith: ".sort",
    placeholder: "shadow", 
    dropOnEmpty: true,
    opacity: 0.8, 
    cursor: 'move', 
    update: function() {
        var order = $(this).sortable("serialize") + '&update=update';
        $.post("/update.php", order, function(theResponse) {
            $("#alert").html(theResponse);
            $("#alert").slideDown('slow');
            slideout();
        });
    }
});
4

1 回答 1

1

我找到了我自己问题的答案。答案是以稍微不同的方式将数据传递给 PHP 文件,以允许更健壮的变量数量(而不是仅仅序列化一组信息)。

var item   = ui.item;
var new_ul = item.parent();
var order  = [];
container.children('li').each(function(i){
    reorder[i] = $(this).attr('id');
});

$.ajax({
    method:'post',
    url: 'update.php',
    data:{
        'new_ul':container.attr('id'),
        'item':item.attr('id'),
        'order':order
    }
});

此解决方案的全部功劳归于 CodeIgniter 的用户“Zehee”(我相信他从 37signals 获得了解决方案)http://codeigniter.com/forums/viewthread/175134/#831756

于 2012-07-25T15:49:05.927 回答