さて、今までは、フォームとハッシュ(連想配列)との関係で ・一行テキストボックス ・ラジオボタン のお話をしてきました。 これらを使うことにより、ブラウザから入力した文字や数字を、PHPスクリ プトを用いて、ブラウザに再び表示させることができるようなることは前回ま での例で示した通りです。 そして、今回は、同じフォームの仲間である、チェックボックスのについての お話です。 この、チェックボックスが今までの一行テキストボックスやラジオボタンと違 うところは、入力する値が、1個ではなく複数個である場合もあるということ です。 この複数個のデータが入力された場合の処理が、チョットというか結構、面倒 くさかったりしますので、そこのところは心しておいてください。 ■チェックボックスを作る(1) とりあえず、なにはともあれ、チェックボックスのフォームを作ります。 ------------------------------------------------------------------------------ <html> <head> <title>チェックボックスのテスト</title> </head> <body> <form action="074-1.php" method="post"> あなたの好きな果物は何ですか(複数回答可) <table border="1"> <tr> <td>りんご</td><td><input type="checkbox" name="kudamono" value="りんご"></td> </tr> <tr> <td>みかん</td><td><input type="checkbox" name="kudamono" value="みかん"></td> </tr> <tr> <td>すいか</td><td><input type="checkbox" name="kudamono" value="すいか"></td> </tr> <tr> <td>メロン</td><td><input type="checkbox" name="kudamono" value="メロン"></td> </tr> <tr> <td>いちご</td><td><input type="checkbox" name="kudamono" value="いちご"></td> </tr> </table> <input type="submit" name="bottun1" value="入 力"> </form> </body> </html> ------------------------------------------------------------------------------ 表示にテーブルを使っているので、一見、チョット複雑そうですが、このHT MLファイルを「074-1.htm」という名前で「C:\inetpub\wwwroot\php」フォ ルダに保存して、
ダブルクリックして表示させると、ごくシンプルなチェックボックスのページが表示され ます。
■データ受け取り側のPHPスクリプトを作る(1) さて、今度は、チェックボックスで選択されたデータを受け取るPHPスクリ プトを作るのですが、今までの一行テキストボックスやラジオボタンと同じ感 覚で作ると、次のようになるでしょう。 ---------------------------------------------------- <?php $kudamono_1 = $_POST["kudamono"]; print("あなたの好きな果物は".$kudamono_1."ですね。"); ?> ---------------------------------------------------- これを、「074-1.php」という名前で「C:\inetpub\wwwroot\php」フォルダに 保存します。
次に、ブラウザのアドレス欄に「http://localhost/php/071-1.htm」と入力し て、フォームのページを表示させたあと、好きなチェックボックスにチェック を入れて、プッシュボタンを押すと・・・ 最後に選択した果物の名前しか出てきません。
(図は「りんご」「メロン」「みかん」を選択した例です。) では、選択した果物をすべて表示させるにはどうしたらよいでしょうか? ■チェックボックスを作る(2) 1つの方法として、まず上記の「074-1.htm」を次のように書き換えます。 -------------------------------------------------------------------------------- <html> <head> <title>チェックボックスのテスト</title> </head> <body> <form action="074-2.php" method="post"> あなたの好きな果物は何ですか(複数回答可) <table border="1"> <tr> <td>りんご</td><td><input type="checkbox" name="kudamono[]" value="りんご"></td> </tr> <tr> <td>みかん</td><td><input type="checkbox" name="kudamono[]" value="みかん"></td> </tr> <tr> <td>すいか</td><td><input type="checkbox" name="kudamono[]" value="すいか"></td> </tr> <tr> <td>メロン</td><td><input type="checkbox" name="kudamono[]" value="メロン"></td> </tr> <tr> <td>いちご</td><td><input type="checkbox" name="kudamono[]" value="いちご"></td> </tr> </table> <input type="submit" name="bottun1" value="入 力"> </form> </body> </html> -------------------------------------------------------------------------------- 上記の例との違いは、それぞれの「name="kudamono"」が「name="kudamono[]"」 という具合に、"["と"]"の2つの記号を「kudamono」の直後にくっつけただけ で、後はすべて同じで変えているところはありません。 ア、あと、フォームのデータを受け取るためのPHPスクリプトも変えますの で、「form action="074-1.php"」が「form action="074-2.php"」に変えてあ ります。 これを、「074-2.htm」という名前で「C:\inetpub\wwwroot\php」フォルダに 保存します。
■データ受け取り側のPHPスクリプトを作る(2) それと同時に、チェックボックスの値を受け取るPHPスクリプトも次のよう にします。 ------------------------------------- <?php $kudamono_1 = $_POST["kudamono"]; print("あなたの好きな果物は"."<br>"); foreach($kudamono_1 as $val_1){ print(" "."$val_1"."<br>"); } print("ですね。"); ?> ------------------------------------- ※「.」は文字列と文字列をつなげて1行にして表示させる働きがあります。 「<br>」はHTML文でおなじみの改行のタグです。 ここで、「foreach〜」始まる箇所がありますが、これはPHPで規定されて いる構文の1つなのですが、ここでは呪文みたいなものだと考えてください。 これについては、次回に改めてお話したいと思います。 さて、このPHPスクリプトを「074-2.php」という名前で「C:\inetpub\wwwr oot\php」フォルダに保存し、
ブラウザのアドレス欄に「http://localhost/php/071-2.htm」と入力して、H TMLフォームを表示させた後、すきなチェックボックスにチェック入れ、プ ッシュボタンを押してください。 そして、チェックを入れた果物の名前が全部表示されれば成功です。
(図は「りんご」「メロン」「みかん」を選択した例です。)
次回は、今回初めて出てきた「foreach(フォーイーチ)」文について、少々細 かにお話したいと思います。
42歳のオヤジでもできた!パソコンサーバー化計画 (マガジンID:0000114576)
Powered by