PHP入門 | form送信の基本 | その他のフォーム要素を使う
フォーム利用の基本がわかったので、ほかの要素についても使い方を見てみよう。
フォームには入力フィールド以外にも、「チェックボックス」「ラジオボタン」「リスト」「テキストエリア」「パスワードフィールド」などがある。テキストエリアやパスワードフィールドは、前に使った入力フィールドと同じように「テキストを送る」ものなので、使い方は理解できるだろう。送られてきた文字を受け取るだけだからである。
では、チェックボックスやラジオボタンなどは、いったいどのように値を渡すのだろうか。実際に試してみよう。
次の、チェックボックス、2つのラジオボタン、3つの項目を持つリストを表示するフォーム例を見てみよう。
<?php
if ($_POST != null){
$ck1 =$_POST['check1'];
$rd1 = $_POST['radio1'];
$sl1 = $_POST['list1'];
$result = "CHECKBOX: {$ck1}\nRADIOBUTTON: {$rd1}\nSELECT: {$sl1}";
} else {
$result = "入力してください。";
}
?>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8" />
<title>sample page</title>
</head>
<body>
<h1>Hello PHP!</h1>
<pre><?php
echo htmlspecialchars($result);
?></pre>
<form method="post" action="./index.php">
<input type="checkbox" name="check1">チェックボックス<br>
<input type="radio" name="radio1" value="1番を選択">ラジオボタン1<br>
<input type="radio" name="radio1" value="2番を選択">ラジオボタン2<br>
<select name="list1">
<option value="Windows">Windows</option>
<option value="Mac OS">Mac OS</option>
<option value="Linux">Linux</option>
</select>
<input type="submit">
</form>
</body>
</html>
これを実際に動かし、それぞれの値がどのように渡されるか確認してみよう。
チェックボックス
チェックがONなら"on"という値が送られてくる。ではチェックがOFFならどうなるだろうか。この場合は何も送られない。つまり空の値になる。
ラジオボタン
選択されたラジオボタンのvalueが送られる。valueが設定されていない場合は、チェックボックスと同じように、単に"on"という値だけが入ってくる。これでは「どのラジオボタンが選択されたか」がわからないため、必ずvalueを書いておくようにする。
また、どのラジオボタンも選択されていない場合は、チェックボックスと同じように何も送られない。
リスト
<select>はコンボボックスのように表示することも、一覧リストのように表示することもできるが、送信されてくる値はどちらも同じである。選択された<option>のvalueが送られる。もしvalueが設定されていなければ、<option>〜</option>の間に書かれたテキストが送信される。
また、何も選択されていなければ、やはり何も送られない。