講義14日目

HTML構文

基本的なフォームの作成
インターネット上でユーザーからのデータを収集するために、入力用の項目を作成するときに利用される。

form要素

データを受け取るプログラムのURIを指定するaction属性(必須)と、データの送信方法を指定するmethod属性が主な構成要素。
method属性値には、action属性で指定したURIとデータをセットで送信するget方式と、本文データのみを送信するpost方式があるが、セキュリティ面でもデータ量の大きさの面でも優位なpost方式が主流である。

<form action="送信先のURI" method="post"> 
...
</form>

form要素内は以下の要素で構成される

input要素

フォーム内のテキストおよびボタンを表示させる要素で以下のtype属性を持つ

text
テキストを一行入力させるフォーム (例:名前、住所など)  name="名前の指定" value="入力欄に初期値として表示される名前"  size="フィールドの横幅(半角英数字の文字数、初期値は20)"  maxlength="入力できる最大文字数"

名前 <input type="text" name="username" value="山田太郎" size="10" maxlength="15">

password

パスワードを入力させるフォーム
 name="名前の指定"
 size="フィールドの横幅(ただし実際はブラウザに依存)"
 maxlength="入力できる最大文字数"
radio

選択肢の中から一つだけを選ばせるラジオボタンを作成(例:性別など)
 name="名前の指定" 
 value="この値と共にデータが送信される"(必須)
 checked="デフォルト状態で選択表示される値"(同じグループ内で一つのみ)

<input type="radio" name="Q1" value="yes" checked>はい 
<input type="radio" name="Q1" value="no">いいえ

checkbox

選択肢の中から複数選ぶことのできるチェックボックスを作成
 name="名前の指定" 
 value="この値と共にデータが送信される"(必須)
 checked="デフォルト状態で選択表示される値"
submit,reset

submitは送信ボタンを作成し、resetはリセットボタンを作成する
 value="ボタン内の表示文字"

<input type="submit" value="送信">
<input type="reset" value="取り消し">

textarea要素

一行以上のテキストを入力させるフォーム(例:コメント欄など)
input要素とは違い、終了タグが必要となる
 name="名前の指定"
 cols="フィールドの横幅の文字数(ただし実際はブラウザに依存)"(必須)
 rows="フィールドの高さの行数"(必須)
※ただし、フィールドの大きさに関わらず入力文字数は指定されることはなく、多くなった場合はスクロールバーが表示される

<textarea name="comment" cols="20" rows="5">
ここに入力した文字列が初期値として表示される
</textarea>
select要素

一つを選択するメニュー(セレクトボックス)を作成できる(例:出身地など)
 name="名前の指定"
 size="メニューの表示行数"(指定しない場合は初期値の1となる)

選択肢はselect要素内にoption要素として記述する。終了タグも必要。
 value="名前の指定"(指定しない場合はoption内のテキストが送信される)
 selected 初期値として表示(一つのみ)

<select name="birthplace">
  <option value="hokkaido" selected>北海道</option>
  <option value="aomori">青森</option>
...
</select>

フォームの部品部分とラベルを関連するにはlabel要素を使う。
label要素を指定することでフォームの操作が容易になりアクセシビリティ向上に繋がります。

label要素

input要素, textarea要素などの各コントロール部品に指定した id属性の値と label要素の for属性の値を一致させる必要がある。開始タグと終了タグが必須

好きなスポーツを選択してください(複数回答可)<br>
<input type="checkbox" name="sports" value="baseball" id="baseball" checked>
<label for="baseball">野球</label>
<input type="checkbox" name="sports" value="football" id="football">
<label for="football">サッカー</label>
...