0

.on('click')イベントを使用して新しいボタンを作成したときに同様のコードが機能していましたが、フォームに付属のボタンを使用する必要があります。イニシャライザに次の行を追加しました。

var options =
        {
            data:
            {
                    "create": _this.toBeCreated,
                    "update": _this.toBeUpdated,
                    "destroy": _this.toBeDeleted
            },
            dataType: 'script',
            type: 'PUT',
            url: 'custom_statuses/modify_statuses'
        };

        $(_this.delegator.$target.find(".UIForm")[0]).ajaxForm(options);

ハードコードされた値をデータにプラグインすると、AJAX呼び出しでそれらが返されるため、このコードは半ば機能します。

ただし、これらのJavascript配列(空ではないことを確認)を使用しようとすると、最後の要素のみがAJAXを介してプッシュされます。

例えば:

toBeDeleted = [1,5,9,7];

戻る必要があります:

"delete": [1,5,9,7]

実際に戻ります:

"delete": "7"

何が問題なのかわかりませんが、このコードは、以前はボタンに接続された.on(クリック)で機能していました。それは似ているように見えました:

$.ajax({
            type: 'PUT',
            url: 'custom_statuses/modify_statuses',
            dataType: 'script',
            data:
            {
                "create": _this.toBeCreated,
                "update": _this.toBeUpdated,
                "destroy": _this.toBeDeleted
            }
        });
4

1 に答える 1

0

答えが見つかりました。データブロックに角かっこを含める必要があります。

"create[]": _this.toBeCreated,
"update[]": _this.toBeUpdated,
"destroy[]": _this.toBeDeleted

ただし、配列の配列を示す方法はわかりません。Updateは配列の配列です。「update[[]]」は機能しません。

于 2012-11-01T18:20:15.977 に答える