【问题标题】:create a 2d array of sortable lists创建可排序列表的二维数组
【发布时间】:2013-09-19 11:22:17
【问题描述】:

我之前在See Here 发布了一个问题,并且几乎有一个我想发布的解决方案。

我已经设法通过使用以下方法来完成这项工作:

$(".todoList").sortable({
    update: function (event, ui) {
        if (this === ui.item.parent()[0]) {
            var numLists = $("ul.menu").length;
            for (var i = 1; i <= numLists; i++) {
                $.post("updateDB.php", {
                    pages: $("#menu-pages" + i).sortable('toArray'),
                    listid: i
                });
            }
        }
    },
    connectWith: ".connectedSortable"
});

但是,使用此解决方案,如果我有 x 个列表,它将查询数据库 x 次。在我发布答案之前,我想知道是否可以为每个“i”创建一个二维数组,并且只需 $.post 一次。

提前致谢。

【问题讨论】:

    标签: jquery arrays jquery-ui-sortable


    【解决方案1】:

    如果我理解你的话,你可以试试这样的:

    $(".todoList").sortable({
        update: function (event, ui) {
            if (this === ui.item.parent()[0]) {
                var numLists = $("ul.menu").length;
                var pages = [];
                for (var i = 1; i <= numLists; i++) {
                    //here is the edit
                    pages.push($("#menu-pages" + i).sortable('toArray'));
                }
                $.post("updateDB.php", {
                    pages: pages
                });
            }
        },
        connectWith: ".connectedSortable"
    });
    

    现在您需要更改您的updateDB.php,因为通过此版本的代码传递的参数与以前不同。

    【讨论】:

    • 感谢您的回复。我做了一个小提琴来测试这个,似乎无法从数组中回显任何东西。说它未定义。 fiddle here。我做错了吗?
    • @banjo:嘿伙计,对不起,我的错。我将 javascipt 数组 push 方法与 jQuery append 方法混淆了,我最近经常使用最后一个 ;)。现在检查答案,它肯定有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多