4

以下は、k と m が Javascript 変数である私の Javascript コードです。

function javascriptfunction() {
  document.forms[formname].action="gotopage.php?parameter1="+k+"&parameter2="+m;
  document.forms[formname].submit();
}

上記のコードは、HTML フォームに POST メソッドがある場合に正しく実行されます。以下は私のHTMLページです:

<form name="formname" action=# method=POST>
  <input type=text name="data1" value="one">
  <input type=text name="data1" value="two">
  <input type=button name="button1" value="send" onclick="javascritfunction();">
</form>

しかし、HTML フォームで GET メソッドを指定すると、HTML フォーム データが送信されます。

gotopage.php?data1=one&data2=two is submitting not Javascript action value i.e
gotopage.php?parameter1="+k+"&parameter2="+m

では、メソッドが HTML フォームで GET の場合、Javascript パラメーターを使用してフォームを送信するにはどうすればよいでしょうか。

4

2 に答える 2

7

GET フォームを送信すると、アクション内のクエリ文字列がフォーム データに置き換えられます。

代わりに非表示の入力にデータを入れてください。

于 2013-07-22T13:51:27.037 に答える
0

GET リクエストでは、フォーム データはクエリ パラメータ文字列以外に「移動」する場所がありません。Quentin が指摘しているように、クエリ文字列はフォーム フィールドのキーと値のペアと自動的に交換されます。したがって、隠しフィールドを使用して追加のデータを含める必要があります。

POST リクエストでは、必要に応じてクエリ パラメータ文字列も使用できますが、フォーム データはリクエスト ペイロードに挿入されるため (GET リクエストにはありません)、クエリ文字列に干渉しません。 . そのため、好きなクエリ文字列でアクション URL をカスタマイズできます。

于 2013-07-22T14:07:56.057 に答える