2

getフォームデータを送信する方法について読んでいます。

したがって、フォームからのデータは、フォームのaction属性の値に?セパレーターとして追加されます。

私が理解できないのは、フォーム送信からの URL がどうなるかを正しく予測する方法です。

つまり、フォームが次のようになっているとしましょう。

<form method="get" action="foobar.com/search">
  User Name : <input type="text" name="uname"></input><br/>
  Name : <input type="text" name="name"></input><br/>
  <input type="submit" value="Submit"></input>
</form>

送信ボタンをクリックすると、生成される URL は何ですか? それはそのようになります :foobar.com/search?[data encoded here]

しかし、それがどのようにエンコードされるかを定義するプロトコルは何ですか? この名前は、ユーザー名の前または後に来る場合があります。

任意のフォームのテンプレート URL を作成するスクリプトを記述して、対応するもの%sを文字列データに置き換えると、正しい URL が作成されるようにすることは可能ですか?

ありがとうございました。

4

2 に答える 2

3

エンコーディング (デフォルト) と GET の使用を考えるとapplication/x-www-form-urlencoded、プロセスは簡単に次のようになります。

各コントロールについて、フォームに表示される順序で、成功したコントロールの場合:

  1. 最初の項目でない場合は、&
  2. フィールドの名前を URL エンコードする
  3. を追加=
  4. フィールドの値を URL エンコードする

フォーム データ送信を構築するための完全なプロセスは、HTML 5 仕様(具体的には、 application/x-www-form-urlencoded エンコーディング アルゴリズム) で説明されています。

対応する %s を文字列データに置き換えると、正しい URL が作成されるように、任意のフォームのテンプレート URL を作成するスクリプトを作成することは可能ですか?

フォームが送信されるまで、どのコントロールが成功するかを常に予測できるとは限らないため、いいえ。

于 2013-04-06T13:38:25.577 に答える
0

連想配列であるため、パラメーターの順序はまったく違いはありません。

そうは言っても、すべてのブラウザーがソースに表示される順序で変数を送信すると確信しています。したがって、あなたの場合は次のようになります?uname=[input]&name=[input]

于 2013-04-06T13:30:37.673 に答える