0

次のコードが実行されると、パラメーターが URL に表示され、テーブル内の内部 HTML は変更されません。ドキュメントには、データが提供された場合のデフォルトのリクエスト メソッドは POST であると記載されています。

$('form').submit(function() {
    var data = $(this).serializeArray();
    $('#items-table').load("drawer.php", data)
});

dataとして正しく出力さMM=01&dd=01&yyyy=2001&HH=12&mm=00&ss=00&entername=Dr.+Clock&optionsRadios=option3&enteritemid=れますが、load() 関数で識別されるページではなく、現在のページへのパラメータとして表示されますdrawer.php

EDIT :serializeArray()オブジェクトが文字列ではなく load() の 2 番目のパラメーターとして渡されることを確認する場合でも、GET 要求が呼び出され、現在のページの URL がこれらのパラメーターを取得することがわかります。「drawer.php」からの応答が div に表示されません。

2番目の編集return false;:送信機能の最後に次の行を含めなかったため、フォームのアクションを傍受できなかったことが判明しました。

4

3 に答える 3

0

POSTメソッドは、データがオブジェクトとして提供される場合に使用されます。それ以外の場合は、GETが想定されます。

$('#items-table').load("drawer.php", {form_data:data})

したがって、メソッドがで削除されたテキスト文字列を作成し、の代わりにを使用したため、のobject/{}代わりにを渡します。stringserialize()&$datadata

于 2012-08-02T23:38:34.657 に答える
0

使用していますvar data = $(this).serialize();

ドキュメントによると:

.serialize()メソッドは、標準のURLエンコード表記でテキスト文字列を作成します。

http://api.jquery.com/serialize/

POSTを使用するには、loadの2番目のパラメーターとしてオブジェクトを指定する必要があります。

于 2012-08-02T23:39:07.190 に答える