PHP
1//チェックされた値を受け取る 2<?php 3$check=isset($_POST['check']) ? $_POST['check'] : null; 4?> 5//何もチェックされてなかったら、チェックすることを促し、されていたらチェックされた値を表示する 6<p>理由: 7 <?php 8 if (!isset($_POST['check']) || empty($_POST['check'])) { 9 echo '<font color="red">チェックボックスを選択して下さい。</font><br />'; 10 } else { 11 $message = null; 12 foreach ($_POST['check'] as $value) { 13 $message .= ($value === reset($_POST['check'])) ? '' . $value : 'と' . $value; 14 } 15 echo $message; 16 } 17 ?> 18</p> 19//おそらくつまづいているのはここからです。 20//チェックされた値をデータベースに登録したい 21<?php 22print'<form method="post" action="thanks.php">'; 23if (is_array($check)) { 24 foreach ($check as $value) { 25 print '<input type="hidden" name="check[]" value="{$value}" >'; 26 } 27 } 28 29```###前提・実現したいこと 30ここに質問したいことを詳細に書いてください 31(例)htmlとphpを用いてアンケートサイトを作っています。 32流れは 33ユーザーが入力:index.html 34入力した情報をユーザーが確認:check.php 35phpmyadminに情報を登録:thanks.php 36 37index→checkまでは値の受け渡しができています。 38checkからthanksで値の受け渡しができてないか、データベースに何らかの理由で登録されない。 39 40###発生している問題・エラーメッセージ 41
エラーメッセージはなく、チェックで得た値を登録する部分が空欄になっています。
![イメージ説明](f2366e96167a429e980b746c2ba072a1.jpeg) ###補足情報(言語/FW/ツール等のバージョンなど) 仮想環境XAMPPで実施しています。 phpmyadminの構造 種別:enum('チェック1','チェック2',....'チェック6') 照合順序:utf8_unicode_ci 属性:空欄 NULL:いいえ デフォルト値:None その他:空欄 ```html <!--index.html--> <form method="post" action="check.php"> <input type="checkbox" name="check[]" id="reason3" value="一番上にあったから"><label for="reason3">一番上にあったから</label></br> <input type="checkbox" name="check[]" id="reason4" value="一番下にあったから"><label for="reason4">一番下にあったから</label></br> <input type="checkbox" name="check[]" id="reason5" value="真ん中にあったから"><label for="reason5">真ん中にあったから</label></br> </form>
php
1//thanks.php 2<?php 3 4 $dsn='mysql:dbname=test_research;host=localhost'; 5 $user='root'; 6 $password=''; 7 $dbn=new PDO($dsn,$user,$password); 8 $dbn->query('SET NAMES utf8'); 9 10 11 12 $check=$_POST['check']; 13 14 $check=htmlspecialchars($check); 15 16 /*=============ユーザーの画面に表示することここから======================*/ 17 print'thank you guys<br />'; 18 /*=============ユーザーの画面に表示することここから======================*/ 19 20 21 $sql='INSERT INTO anketo (reason) VALUES ("'.$check.'")'; 22 $stmt=$dbn->prepare($sql); 23 $stmt->execute(); 24 25 $dbn=null; 26 27 ?>
ここまで読んだ方はわかるかもしれませんが、素人です。
説明不足などあるかと思いますがよろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー