0

以前に質問を投稿しましたここを参照してください 投稿したい解決策がほぼあります。

以下を使用して、これを機能させることができました。

$(".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 個のリストがある場合、DB に x 回クエリを実行します。回答を投稿する前に、「i」ごとに配列の 2D 配列を作成し、$.post を 1 回だけ作成できるかどうかを知りたいと思います。

前もって感謝します。

4

1 に答える 1

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このバージョンのコードで渡されるパラメーターは以前と同じではないため、変更する必要があります。

于 2013-09-15T04:50:22.397 に答える