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>の間に書かれたテキストが送信される。

また、何も選択されていなければ、やはり何も送られない。