我有一个HTML页面,其中包含多项选择题,表单设置为POST。单击提交时,它将运行 php 页面。 PHP 页面连接到我的数据库,其中包含正确答案等...我需要将用户答案从 HTML 页面获取到我的 php 页面中,但由于它处于循环中,它不能继续选择第一个问题答案。这可能吗? 我看了 3 天也没有快乐,这是一种耻辱,因为我的其余脚本工作正常。 任何指导都会很棒。谢谢
$x = 0;
$score = 0;
while ($row = mysql_fetch_assoc($result)){
echo "Question Number: " . $row['Questionid'] . '<br />';
echo "Question: " . $row['Questiontext'] . '<br />';
echo "Correct Answer: " . $row['Correctanswer'] . '<br />';
/** I want to POST the answer from the HTML form and call it $value.
My problem...no idea how to do this. As it is in a loop each time it comes
to this line it needs to also move down the HTML page i.e. to the second
question etc...`*/
echo "Your Answer: " . $value."n" . '<br />';
echo "<br>";
$correct = $row['Correctanswer'] ;
if ($value == $correct ) {
$score++;
.HTML
<select name="answer1">
<option>Tu </option>
<option>El</option>
<option>Yo</option>
<option>Ellos</option>
<option selected="selected"> </option>
</select>
hablo </div></td>
</tr>
<tr>
<td height="54"><div align="left" class="style15">2 - You drink </div></td>
<td><div align="left" class="style13">
<select name="answer2">
<option>Nosotros</option>
<option>Tu</option>
<option>Vosotros</option>
<option>Yo</option>
<option selected="selected"> </option>
</select>
假设 HTML 中的答案输入字段<INPUT type='text' name='answer1'>
其中 1 是数据库中的问题 ID。你的PHP应该是这样的:
$x = 0;
$score = 0;
while ($row = mysql_fetch_assoc($result)){
echo "Question Number: " . $row['Questionid'] . '<br />';
echo "Question: " . $row['Questiontext'] . '<br />';
echo "Correct Answer: " . $row['Correctanswer'] . '<br />';
$value = htmlspecialchars ($_POST['answer' . $row['Questionid']]);
echo "Your Answer: " . $value."n" . '<br />';
echo "<br>";
$correct = $row['Correctanswer'] ;
if ($value == $correct ) {
$score++;
}
您必须按名称在 html 页面上获取输入。 即 然后在后端 PHP 上检索 input1 的值:$input 1 = $_POST['input1'];
你在哪里设置$value
变量?你没有显示任何你的 HTML,所以我假设你有很长的表单,有很多问题。尝试制作一个答案数组,并得到类似的东西:
$corectAnswers=null;
while ($row = mysql_fetch_assoc($result)){
$corectAnswers[]=$row;
}
然后,对于每个答案,请使用检查它是否正确:
foreach ($corectAnswers as $key => $value) {
if($value==$userAnswers[$key]){
$answers[]['isCorrent']=true;
$score++;
//do some html stuff here or after the end of foreach loop
}else{
$answers[]['isCorrent']=false;
//again html
}
}
您可以将表单输入元素 NAME 设置为包含 Questionid 的内容,例如<输入名称>并在 PHP 中动态引用它们。 在你的PHP中,它期望用户答案存储在$value中,你可以做这样的事情来动态检索POST数据:输入名称>
$value=$_POST['ans'.$row['Questionid']];
这会根据数据库中的 questionid 找到表单的相关答案