■サンプルプログラム1
テキストエディタに以下のように書き込んで、「lesson8」フォルダの中に「form4.html」として保存しましょう。
<html>
<head>
<title>form</title>
</head><body>
<p>お好きなモノをお選びください。</p>
<form name="form1" method="post" action="./sample04.php">
からすみ<input type="checkbox" name="chk[]" value="からすみ"><br>
烏賊の沖漬け<input type="checkbox" name="chk[]" value="烏賊の沖漬け"><br>
チャーシュー盛り<input type="checkbox" name="chk[]" value="チャーシュー盛り"><br>
酢のモノ<input type="checkbox" name="chk[]" value="酢のモノ"><br>
レバー<input type="checkbox" name="chk[]" value="レバー"><br>
<input type="submit" name="Submit" value="送信">
</form>
</body>
</html>
■サンプルプログラム2
<?php
// $checkboxの中身は配列
$checkbox = $_REQUEST["chk"];
?><html>
<head>
<title>sample04</title>
</head>
<body>
あなたの好きなものは。<hr>
<?php
for($i=0; $i<sizeof($checkbox); $i++){
print "${checkbox[$i]}<br>";
}
?>
<p><a href="form4.html">戻る</a></p>
</body>
</html>
テキストエディタに以下のように書き込んで、「lesson8」フォルダの中に「sample04.php」として保存しましょう。
できましたら、ブラウザのアドレスに
「http://localhost/lesson8/form4.html」にアクセス!
ロリポップ!
さくらのレンタルサーバ
などのレンタルサーバー使ってる方はlocalhostのところはドメイン名になります。
(簡単に安くネットショップを開きたい方はこちら!)
さて、如何でしょうか?ちゃんと表示されましたでしょうか?
■解説1(from4.html)
<input type="checkbox" name="chk[]" value="からすみ">
え〜っと、まずコレ。ちょっと特殊ですが、name属性に「chk[]」となっています。ちょっと見づらいので拡大、
name = "chk[]"
つまり、[]←これは、[ ←こいと、] ←こいつが組み合わさったんデスナ。チェックボックスのname属性には、このようにすべて同じ名前をつけます。送られる値はやっぱりvalue属性で、この値が送られます。
■解説2(sample04.php)
$checkbox = $_REQUEST["chk"];
まずは、ココ。ただの変数に入れてる感じがしますが、じつはコノ$checkboxは、配列です。form4.htmlで、チェックボックスのname属性に「chk[]」とつけましたが、ソレを$_REQUEST[""]に与えています。ここで注意が必要なのは、[]こいつは入れないこと。なんで?って言わないでください。私にもわかりません
なんで、チェックボックスが厄介かと言うと、ソレは選択するユーザーがどれを選択するのかが、わからないことです。ですから、チェックされているものを全てチェックしてその際、チェックがされていたのを配列である$checkboxに入れるわけデスナ。
さて、それではチェックされたものを配列にいれてみマスカ!
for($i=0; $i<sizeof($checkbox); $i++){
print "${checkbox[$i]}<br>";
}
え〜っと、Lesson6でやったsizeof()関数を使用しています。count()でもOKみたいです。なんとなく、sizeof()が好きなだけデス。ココでやっていることは、$checkboxに入った値分だけ、ループし$checkbox[$i]とすることで、それぞれの値を出力しているわけです。では、順を追って見てみましょう。「からすみ」「チャーシュー盛り」を選択して送信したとしましょう。