二回目の質問になります。よろしくお願いいたします。
###前提・実現したいこと
前回質問した質問と同じシステムなのですが、タイトルにもあります通り、ループして表示しているチェックボックスで複数の項目をチェックした値をデータベースに送信したいと思っております。
そこでお伺いしたいことなのですが、このコードをご覧ください。
send.php データベースに送る際のphpです↓
php
1//データ件数をカウント、変数dataに代入 2$recordSet = mysqli_query('SELECT COUNT(id) FROM dish); 3$data = mysqli_fetch_assoc($recordset); 4 5$id = $data['count(id)']+1; 6$dishId = $_POST['menuId']; 7$dishMenu1 = implode('、',$_POST['dishMenu1']); 8$dishMenu2 = implode('、',$_POST['dishMenu2']); 9$dishMenu3 = implode('、',$_POST['dishMenu3']); 10$dishMenu4 = implode('、',$_POST['dishMenu4']); 11 12//書き込み部分 13mysqli_query('INSERT INTO dish SET id="'.$id.'",dishId="'.$dishId.'",dishMenu1="'.$dishMenu1.'",dishMenu2="'.$dishMenu2.'",dishMenu3="'.$dishMenu3.'",dishMenu4="'.$dishMenu4.'"') or die(mysqli_error());
チェックボックスのみなら、このコードで問題ないとは思うのですが、こちらのコードをご覧ください。
menu.php フォーム部分のPHPです
php
1 for($j=1; $j<=10; $j++){ 2 if($col['format']==$frmtR){ 3 //radio 4 if($col['dish'.$j]){ 5 if($col['required'.$k]){ 6 echo"<input required type='radio' name='menu{$menu_count}' id='menu{$menu_count}'value='".$col['dish'.$j]."'>".$col['dish'.$j].'<br>'; 7 }else{ 8 echo"<input type='radio' name='menu{$menu_count}' id='menu{$menu_count}' value='".$col['dish'.$j]."'>".$col['dish'.$j].'<br>'; 9 } 10 } 11 }elseif($col['format']==$frmtC){ 12 //checkbox 13 if($col['dish'.$j]){ 14 if($col['required'.$k]){ 15 echo"<input reqired type='checkbox' name='menu{$menu_count}[]' id='menu{$menu_count}' value='".$col['dish'.$j]."'>".$col['dish'.$j].'<br>'; 16 }else{ 17 echo"<input type='checkbox' name='menu{$menu_count}[]' id='menu{$menu_count}' value='".$col['dish'.$j]."'>".$col['dish'.$j].'<br>'; 18 } 19 } 20}
このように、for文とif文を使って、ラジオボタンまたはチェックボックスの条件をデータベースから取得してきております。これだと、__send.php__のほうでimplodeをしていると、ラジオボタンが上手に取得できなくなり、困っております。
###試したこと
implodeの他にできるものはないかと調べたのですが、全く検索が引っかからずに困っておりました。
また、implodeを外して、nameの部分に[]のみをつけた状態でフォームを送信してみたところ、テーブルのレコード部分に「array」という文字のみが表示されてしまいました。
###追記
format はデータベースにあります、選択項目(ラジオボタンやチェックボックス)を取得するための値が入っているidとなっております。
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html" charset="UTF-8" ;/> <link href="css/questionStyle.css" type="text/css" rel="stylesheet"> <title>アンケート</title> </head> <body> <form action ="send.php" method="post" id="form"><h1 align="center">test</h1> <hr><div class="question" align="center"><p>1.test</p> <p align="left" style="display:inline-block;"> <input type='checkbox' name='dishMenu1[]' id='dishMenu1' value='うああ'>うああ<br> <input type='checkbox' name='dishMenu1[]' id='dishMenu1' value='うおおお'>うおおお<br> <input type='checkbox' name='dishMenu1[]' id='dishMenu1' value='ふみゅ'>ふみゅ<br> <input type='checkbox' name='dishMenu1[]' id='dishMenu1' value='ふ'>ふ<br> <input type='checkbox' name='dishMenu1[]' id='dishMenu1' value='ぐ'>ぐ<br> sonota<input type='text' name='dishMenu2' id='dishMenu2' value=''> <input type='hidden' name='question_id' value='1'></p></div><div align="right"> <input type="submit" value="送信する" id="send" name="send" style="width:100px; height:30px;"> </div> </form> </body> </html>
何度も修正申し訳ありません
回答2件
あなたの回答
tips
プレビュー