checkboxなどの複数回答の受信方法
input属性がcheckboxで複数回答を送信すると受信する側は...
contact.php(送信側)
<form action="contact_do.php" method="post"> <label><input type="checkbox" name="check" value="select01" checked="checked">select01</label> <label><input type="checkbox" name="check" value="select02">select02</label> <label><input type="checkbox" name="check" value="select03">select03</label> <input type="submit" value="送信">
contact_do.php(送信側)
<dl> <dt>チェック内容:</dt> <dd><?php $_POST['check'] ?></dd> </dl>
送信側は選択肢を1つだけなら、問題なくcheckboxの値が返ってくるが、
複数選択肢を受け取ると最後の値のみ一つだけ表示される。
これを解消するには、送信側のname属性に配列するよう"[]"を付け加え
contact.php(送信側)
<form action="contact_do.php" method="post"> <label><input type="checkbox" name="check[]" value="select01" checked="checked">select01</label> <label><input type="checkbox" name="check[]" value="select02">select02</label> <label><input type="checkbox" name="check[]" value="select03">select03</label> <input type="submit" value="送信">
受信側に複数回答を配列に収納した変数をforeach関数で表示します。
contact_do.php(送信側)
<dl> <dt>チェック内容:</dt> <dd> <?php foreach($_POST['check'] as $key => $val){ echo "$val <br>\n"; }?> </dd> </dl>