PHPでform送信の勉強をしているのですが、foreachを使ってチェックボックスの内容を出力する方法に躓いてしまい、アドバイス頂けないでしょうか?
php
1 <form action="" method="post"> 2 タイトル: 3 <input type="text" name="title"> 4 <br> 5 メッセージ: 6 <textarea name="mess" id="mess"></textarea> 7 <br> 8 性別: 9 <input type="radio" name="sex" value="男">男 10 <input type="radio" name="sex" value="女">女 11 <br> 12 趣味: 13 <input type="checkbox" name="hobby[]" value="読書">読書 14 <input type="checkbox" name="hobby[]" value="釣り">釣り 15 <input type="checkbox" name="hobby[]" value="音楽鑑賞">音楽鑑賞 16 <br> 17 <input type="submit" value="送信"> 18 </form> 19<?php 20 $form = $_POST; 21 foreach ($form as $key => $val) { 22 echo $key . ":" . htmlspecialchars($val, ENT_QUOTES, "utf-8") . "<br>"; 23 } 24?>
foreachを使って一気に表示させたいのですが、チェックボックスが配列のためだと思うのですが、以下のエラーが表示され、チェック項目のみ表示できません。
Warning: htmlspecialchars() expects parameter 1 to be string, array given in
なお、以下の感じでチェックボックスを単独で指定すると表示できました。
php
1 if (isset($_POST["hobby"])) { 2 $hobby = $_POST["hobby"]; 3 $hobby = implode(',', $hobby); 4 echo $hobby; 5 }
foreachでチェックボックスの取得についてアドバイスを宜しくお願いいたします。㎜
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/16 06:51