さて、前回は、話の内容がチョット横道に逸れてしまいましたが、今回は、元 に戻り、ハッシュ(連想配列)とHTMLのフォームとの関係です。 前々回は、HTMLで一行テキストボックスを作り、そこに文字や値を入力し たものをブラウザに表示させましたが、今回はラジオボタンで同じことをやっ てみたいと思います。 ■ラジオボタンで選択した値をブラウザに表示する。 まずはともあれ、入力するHTMLフォームを作らなければなりません。 とりあえず、非常に簡単な例を作ってみました。 ------------------------------------------------------- <html> <head> <title>ラジオボタンのテスト</title> </head> <body> <form action="073-1.php" method="post"> あなたの性別は?<br> <br> 男<INPUT type="radio" name="seibetsu" value="男"><br> 女<INPUT type="radio" name="seibetsu" value="女"><br> <br> <input type="submit" name="bottun1" value="入 力"> </form> </body> </html> ------------------------------------------------------- 上記のHTMLファイルをメモ帳などにコピー&ペーストして、「073-1.htm」 という名前で、「C:\Inetpub\wwwroot\php」フォルダに保存します。
そして、ブラウザのアドレス欄に「http://localhost/php/073-1.htm」と入力 すると、インターネット上でよく見かける画面が表示されると思います。
さて、ここで、もう一つ、このフォームの値を受け取るPHPのファイルを作 らなければなりません。 前々回の1行テキストボックスの時にも説明しましたが、フォームで送られた データはすべて、「$_POST」という名前のハッシュの中に格納されます。 そして、それぞれの値を取り出したい時は、HTMLフォームの中で指定して いる、「name="○×△"」の「○×△」の名前を指定することになります。 例えば、上の例で言えば、 男か女というデータを取り出したい → $_POST["seibetsu"]と指定することに なります。 また、現実には、まったく役には立ちませんが、プッシュボタンの名前を取り 出す時には、$_POST["bottun1"]と指定します。 上記のような事を頭の中に入れて、PHPのスクリプトを作ってみました、そ れが下記の例です。 ----------------------------------------------------------------------------- <?php $seibetus_1 = $_POST["seibetsu"]; print("あなたの性別は".$seibetus_1."ですね"); print("<br>"); $bottun_1 = $_POST["bottun1"]; print("これは余計なことですが、ボタンの名称は「 $bottun_1 」となっています"); ?> ----------------------------------------------------------------------------- ※「.」は文字列と文字列をつなげて1行にして表示させる働きがあります。 $bottun_1の前後には半角のスペースがあることに注意してください。 さて、このPHPのファイルを「073-1.php」という名前で、「C:\Inetpub\ww wroot\php」フォルダに保存してから、
ブラウザのアドレス欄に「http://www.localhost/073-1.htm」と入力し、「07 3-1.htm」を表示させた後、ラジオボタンの好きな方を選択し、プッシュボタン を押してみてください。 図のような画面が表示されると思います。
ちなみに、どちらも選択しないでプッシュボタンを押すと。。。(^^;)。 さて、ここで注意ですが、 ・HTMLファイルの「form action="073-1.php"」の「073-1.php」は必ず、 データを受け取る側のPHPファイル名と同じにしたください。 ・ $_POSTの「POST」は必ず大文字を使ってください。小文字だとエラーにな ります。 さて、次回は、チョット(というかかなり難しい?)チェックボックスの取り 扱いについてお話したいと思います。
42歳のオヤジでもできた!パソコンサーバー化計画 (マガジンID:0000114576)
Powered by