18. HTMLフォーム

HTMLフォームとは

ブラウザからデータを送信

HTMLフォームブラウザ上からデータ送信する仕組みです。例えばログイン画面からテキストボックスや送信ボタンを配置して、サーバに入力情報を送信できます。

HTMLフォームからデータを送信

ブラウザ(HTMLフォーム)から送信されたデータは、サーバ側のプログラム(PHPやJavaなど)で処理してHTMLを出力します。

form

ブラウザ上にフォーム画面を作成するにはHTMLフォームタグを利用しますが、いくつか種類があります。

Form タグ

formタグはHTMLからデータを送信するための元になるタグです。HTMLフォームからデータ送信するには、formタグの中にHTMLフォームタグを記述します。

<form>

</form>

formタグのプロパティ

formタグは、actionプロパティとmethodプロパティで作成します。

<form action="URL" method="get/post">

</form>
プロパティ メモ
action リクエストURL URL は相対パス・絶対パスのどちらかを指定
method getまたはpost メソッド名(デフォルトはget)

actionプロパティ

actionプロパティには、リクエストURLを絶対パスや相対パスで指定します。

<form action="./login" method="">

</form>

methodプロパティ

methodプロパティは、データ送信する方式を指定します。「get」にすると、GETリクエスト、「post」にするとPOSTリクエストになります。

<form action="" method="post">

</form>

HTMLフォームタグ

データ送信するためには、formタグの中にHTMLフォームタグを記述します。

<form action="" method="get">
    <input type="text">
    <button>送信</button>
</form>

HTMLフォームタグは主に以下のような種類があります。

  • input
  • select
  • textarea
  • button

フォームタグの基本

nameプロパティ

nameプロパティは、送信データに名前をつけてサーバプログラムで取得できるようにします。

<タグ名 name="キー">

valueプロパティ

valueプロパティで、フォームタグの初期値を設定できます。

<タグ名 name="キー" value="初期値">

input

typeプロパティ

inputタグはフォームタグで最も利用されるタグで、typeプロパティによって入力方法が変わります。

<input type="種類">
typeの一覧
type 種類 メモ
text テキストボックス 通常テキスト
password テキストボックス パスワード
radio ラジオボタン 1つだけ選択
checkbox チェックボックス 複数選択
hidden 隠しフィールド ブラウザ上に表示されないがデータを送信
file ファイル送信 PCからファイルを選択

text

「text」はテキストボックスを表示し、1行のテキスト入力ができます。

テキストボックス

HTML
<input type="text" name="email" value="">
  • nameにデータのキーを設定
  • 入力した値は、valueに自動的にバインド
  • デフォルト値はvalueに記述

password

「password」はテキストボックスを表示し、パスワード(文字が隠れる)を入力できます。

パスワード

HTML
<input type="password" name="password" value="">
  • nameにデータのキーを設定
  • 入力した値は、valueに自動的にバインド
  • デフォルト値はvalueに記述するが、セキュリティ上設定しない

radio

「radio」はラジオボタンで項目を1つだけ選択できます。

ラジオボタン

HTML
<input type="radio" name="agree" value="1">
<input type="radio" name="agree" value="0">
  • nameプロパティの値を統一
  • 選択した項目は、valueの値を送信
  • デフォルト選択は、checkedで指定

checkbox

「checkbox」はチェックボックスで複数選択できます。

チェックボックス

質問1 質問2 質問3

HTML
<input type="checkbox" name="questions[]" value="1">質問1
<input type="checkbox" name="questions[]" value="2">質問2
<input type="checkbox" name="questions[]" value="3">質問3
  • name プロパティを統一
  • name をキーとした value の値を送信
  • [] を利用するとデータを配列で送信
  • チェックした値は、valueの値を送信
  • デフォルト選択は、checkedで指定

file

「file」は、PCからファイルアップロードするときに利用します。

ファイルアップロード

HTML
<input type="file" name="file">

複数ファイルのアップロード

複数ファイルのの場合、nameの値を配列表記 [] で指定します。

HTML
<input type="file" name="files[]" multiple="multiple">
  • データはバイナリデータで送信される
  • 複数ファイルを選択するときは multiple="multiple" を設定

hidden

「hidden」はブラウザで表示しないデータを送信するときに利用します。

HTML
<input type="hidden" name="user_id" value="100">
  • ブラウザ上で表示しないデータ送信
  • valueに値を指定しておく

submit

「submit」はフォームを実行するボタンです。

HTML
<input type="submit" value="送信">
  • フォーム実行ボタン
  • ボタンのラベルはvalueで指定

button

buttonタグは「submit」同様に、フォームを実行するボタンです。最近のHTMLフォームでは、buttonタグを利用することが多くなっています。

<button>送信</button>
  • submitは省略も可能
  • ボタンのラベルはvalueで指定

select

selectタグは、プルダウン表示で項目を1つだけ選択できます。項目は option タグで設定します。

プルダウン

HTML
<select name="color">
  <option value="red">赤</option>
  <option value="yellow" selected>黄</option>
  <option value="blue">青</option>
</select>
  • selectタグにnameプロパティを設定
  • 選択項目はoptionタグ
  • 選択した値は、valueの値を送信
  • デフォルト選択は、checkedで指定

textarea

textareaタグは複数行のテキスト入力を送信します。

テキストエリア

HTML
<textarea name="note" rows="5" cols="50">テキスト</textarea>
  • name をキーとして値を送信
  • 値は textareaタグ内に記述
  • 行は rows で指定
  • 列は cols で指定

演習

問題1

1行のテキストを入力するHTMLフォームタグはどれですか?

1)

<input type="text" name="">

2)

<input type="radio" name="">

3)

<textarea name=""></textarea>

4)

<select name="">
  <option value=""></option>
</select>

問題2

ラジオボタンのHTMLフォームタグはどれですか?

1)

<input type="text" name="">

2)

<input type="radio" name="">

3)

<textarea name=""></textarea>

4)

<select name="">
  <option value=""></option>
</select>

問題3

プルダウンを表示するHTMLタグはどれですか?

1)

<input type="text" name="">

2)

<input type="radio" name="">

3)

<textarea name=""></textarea>

4)

<select name="">
  <option value=""></option>
</select>

PHP超入門