私はここで少し困惑しています...
データベーステーブルに保存されている調査の質問のリストを表示する Web ページを持っています。各質問の評価回答を収集し (強く反対 -> 強く同意)、値を別のテーブルに戻そうとしています。私のデータベースで。
フォーム コードのスニペットを次に示します。
<form action="submitAnswers.php" name="subAns" method="post">
<fieldset>
<legend>Survey Questions</legend>
<input type="hidden" name="survey_id" value="<?php echo ($survey_id); ?>">
<table width=90% border=0 cellpadding='2' cellspacing='2'?>
<tr bgcolor=#D0D0D0>
<th>Question</th>
<th>Strongly Disagree</th>
<th>Somewhat Disagree</th>
<th>Neither Disagree nor Agree</th>
<th>Somewhat Agree</th>
<th>Strongly Agree</th>
</tr>
<tr>
<?php
while ($row = mysql_fetch_array($res, MYSQL_ASSOC))
{
echo "<td bgcolor='#E8E8E8'><font size='-1'>$row[quest_order]) $row[quest_text]</font></td>";
for ($i = 0; $i < 5; $i++)
{
//echo "<input type='hidden' name='qID' value='$quest_id'>";
echo "<td bgcolor='#E8E8E8'><input type='radio' name='$row[quest_id]' value='$i'></td>";
}
echo "</tr>";
}
?>
<br>
</table><br>
<input type="submit" name="submitAnswers" value="Submit Survey"></fieldset>
</form>
「submitAnswers.php」ファイルの PHP は次のとおりです。
$survey_id=$_POST['survey_id'];
$sql = "INSERT INTO survey_responses (survey_id)
VALUES ('$survey_id')";
$res = send_sql($sql, $link, $db);
foreach($_POST['quest_id'] as $id=>$value)
{
$sql = "INSERT INTO survey_answers (response_id, quest_id, response_value)
VALUES (LAST_INSERT_ID(), $id, '$value')";
$res = send_sql($sql, $link, $db) or die("Cannot add survey");
}
「survey_responses」テーブルへの挿入ステートメントは正常に機能しますが、各質問の回答スコアを取得するために使用するラジオ ボタンを修正する方法がわかりません。値は POST で渡されます (print_r($_POST);
返された を見てこれを確認しました。たとえば:
配列 ( [survey_id] => 4 [6] => 0 [5] => 1 [4] => 2 [3] => 3 [2] => 4 [1] => 3 [submitAnswers] => 送信調査 )
しかし、明らかに私はこれについて間違っています.1つ1つに質問ID番号と応答値を正常に反復して挿入することができないからです。これは比較的単純だと確信していますが、私はまだプログラミングに慣れていないので、何時間もこれを試してきましたが、運がほとんどまたはまったくありませんでした.
誰かがこれを修正するのを手伝ってくれることを願っています。うまくいけば、その過程でより良い説明をしたり、データベースレコードを取得してさまざまな量の情報を db に戻したりする動的にサイズ変更されたフォームを処理する方法をカバーする優れたリソースを教えてくれます。
ありがとう!