* 提出 (Web Forms) [1] [[フォーム]]を[DFN[[RUBYB[提出][submit]]]]すると、 [[成功]]制御子の[[制御子名]]と[[現在値]]の組が[[フォーム処理エージェント]]に渡されます。 [SRC[HTML 4 17.2, 17.13]] [2] 仕様書: - [[HTML 4]] ([[Web Forms 1.0]]) -- [CITE[17.13 Form submission]] [[#comment]] ** 提出処理の流れ [4] フォームの提出は、次の手順を経ます。 [SRC[HTML 4 17.13.3]] :1. 成功制御子の識別:[[フォーム]]内の制御子から、[[成功]]しているものを選びます。 :2. フォーム・データ集合の構築:成功制御子から、[DFN[[[フォーム・データ集合]]]] ([[制御子名]]と[[現在値]]の組の集合) を構築します。 :3. フォーム・データ集合の符号化:フォーム・データ集合を指定された[[媒体型]] ([CODE(HTMLa)[[[enctype]]]]) により符号化します。 :4. 符号化フォーム・データ集合の提出:符号化したデータ集合を指定された[[フォーム処理エージェント]] ([CODE(HTMLa)[[[action]]]]) に指定された方法 ([CODE(HTMLa)[[[method]]]]) で送信します。 :(5. 結果のレンダリング):UA は、提出の際の HTTP [CODE(HTTP)[[[GET]]]]・[CODE(HTTP)[[[POST]]]] に対する応答をレンダリングするべきです。 [5] >>4 で、提出されるのがフォーム・データ集合 (名前と現在値の組の集合) だけのように書かれていますが、 ファイル選択制御子の場合はそれに含まれないはずのファイルの内容も提出されます。 画像提出ボタン ([[[CODE(HTMLe)[input]]//[CODE(HTML)[image]]]]) の座標との関係も不明確で、概念の整理が不十分という印象を受けます。 [6] なお、 >>4 の流れは、4つの段階を完全に別のものとして扱えるわけではなく、 制御子の種類, 媒体型, 処理エージェントのプロトコルなどの依存関係があります。 仕様や実装によって実際に使用できる組合せは限られてきます。 HTML 4 が[Q[確立された慣習]]として対応することを要求している [SRC[HTML 4 17.13.3]] のは、次の場合だけです。 ,[CODE(HTMLa)[action]],[CODE(HTMLa)[method]],[CODE(HTMLa)[enctype]],その他 ,[[HTTP]] URI,[CODE(HTML)[[[get]]]],[CODE(MIME)[[[application/x-www-form-urlencoded]]]],"フォーム・データは ASCII 文字のみ" ,HTTP URI,[CODE(HTML)[[[post]]]], [[#comment]] ** メモ [3] フォームの[Q[提出]] ([Q[submit]]) は、意味を解して[Q[送信]]とも呼ばれます。 しかしながら、提出と送信ではニュアンスが異なりますから、 専門用語としては使い分けるべきでしょう。 [[#comment]] * メモ