• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:フォームから送信される値について教えてください)

フォームから送信される値について教えてください

このQ&Aのポイント
  • HTMLフォームについて、フォームから送信される値について詳しく教えてください。
  • フォームのテキストやチェックボックスなどinput要素では、name属性は必須ではなくid属性が必須で、送信される値はどのような形式なのでしょうか?
  • 最近のブラウザは、フォームの値をid=valueの組み合わせで送信することがあるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

おおざっぱに調べた限りでは、下のようでした。 長いので要約すると ●HTML5の仕様では <form> の name は使わず、 id を使用する。 ●XHTML 1.0 は a, applet, form, frame, iframe, img, map 要素の name 属性を廃止予定としており、後続バージョンのXHTMLからは除去されるであろうから注意すること。 <form> の name 属性は id 属性に置き換えます。 ●フォームのコントロール <input type="..." name="..."> は name を使う。 さらに、HTML5では入力コントロールに、 form 属性が使用できるようになって記述の制約が低くなります。 form 属性には <form id="..."> の ID を使用します。 <input type="..." name="..." form="form-id"> >getに関しては今もそうかもしれないが、現在のpostの場合はidとvalueの >値のペアが送信され、それをサーバで処理しているというようなことを >言われました。 これはウソ、マチガイですね。 まあ、でも、たぶんASPとかの関係で得た知識はあるが、HTMLの知識不足なのかもしれません。詳しくはないですが、ASPでは下のように記述するのが一般的なようです。 <asp:TextBox id="val1" Text="1" runat="server" /> ブラウザに送られるときに標準HTMLに変換される(<input type="text" name="val1" value="1">)ことが分かっていないのかもしれません。 まあ、ブラウザによってはXHTMLの仕様がややこしいので非標準な補完処理をしているってこともありえますが、いずれにせよ <input type="..." id="..."> は標準ではないですね。 詳細は下を確認してください HTML4.1の日本語訳のフォームについて http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/interact/forms.html#h-17.13.3 ポイントだけ ・コントロールの“コントロール名”は、 name属性で名づける。 ・<input type="..."> の name 属性は type が submit と reset を除いて必須 ・フォームデータはコントロール名と現在値の組みあわせで表わされる文字列(name=value&name=value...)で送信される。 XHTMLの仕様について http://www.doraneko.org/webauth/xhtml10/20000126/Overview.html HTML5の仕様から http://www.w3.org/TR/2011/WD-html5-20110113/association-of-controls-and-forms.html#attributes-common-to-form-controls ・4.01と変わらず name 属性を使用します。

gooMach
質問者

お礼

非常に詳しいご回答ありがとうございます。 おおざっぱに言うと、html5、xhtmlでは input要素でname="名前"は 「コントロールの名前を指定する、type="submit"、type="reset"以外では 必須属性とされる」 form要素でname="識別子"は 「リンクやスクリプトからこのフォームを参照できるように識別子が指定できる。 XHTML1.0Strict、XHTML1.1では指定不可であり、識別子はid属性で指定する」 ということになるのでしょうか。 となると私が話した相手の方は input要素とform要素でのname属性の扱いを混同していたのかもしれませんね。 HTMLにはいろいろバリエーションがあり、細かい部分の仕様も異なるので 厳密に考えると非常にややこしいですね、勉強します。 私の方でも、動作が気になったのでフォームを作って確認をしました。 結果はこちらに掲載しています。 http://www.fixj.net/110224formTest/ (一週間ほどで削除します。) やはりというか当然というか、id=valueがサーバ側のプログラムに送信される ことは無いようです。 xhtml1.0strictで確認しましたがhtml4.0などでも同じでした。

その他の回答 (1)

回答No.1

こんばんは。 質問者様の理解で正しいと思います。 基本的に、 name=value の組み合わせで飛んできますが、タグのnameを省略し、idが付与されていれば、 id=value の組み合わせで飛んできます・・・。 ただ、idはユニークでないといけないので、配列飛ばしたい時はどうするんでしょうね? 相手の人・・・。

gooMach
質問者

お礼

素早いご回答ありがとうございました。 参考にさせていただきます。

関連するQ&A