我在这里有点难过...
我有一个网页显示存储在数据库表中的调查问题列表,我正在尝试收集每个问题的评分回复(非常不同意 -> 非常同意)并将值传递回另一个表在我的数据库中。
这是表单代码的片段:
<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] => 提交民意调查 )
但显然我要解决这个问题,因为我无法成功迭代并为每个问题插入问题 id# 和响应值。我敢肯定这相对简单,但我对编程还是很陌生,并且已经研究了几个小时,几乎没有运气。
只是希望有人可以帮助我解决这个问题,并希望在此过程中更好地解释,或指出一个很好的资源,涵盖如何处理动态大小的表单,这些表单正在检索数据库记录并将各种数量的信息传递回数据库。
谢谢!