我正在开发一个由PHP和jQuery驱动的多问题测验。选择一些答案并单击“提交”按钮后,用户将转到另一个具有此答案键的页面:
$totalCorrect = 0;
$answers = [1 => 'A', 2 => 'Jupiter', 3 => 'C', 4 => 'D', 5 => 'A', 6 => 'C', 7 => 'C', 8 => 'C', 9 => 'B', 10 => ''.$Ch.''];
foreach ($answers as $num => $answer)
{
$question = 'q'.$num;
if (isset($_POST[$question]) && $_POST[$question] === $answer)
{
$totalCorrect++;
}
}
$pct = round( (($totalCorrect/count($answers)) * 100), 0);
echo $totalCorrect.' correct ('.$pct.'%)';
除#2(填空)和最后一个答案外,所有答案都是多项选择答案,要求用户检查所有正确的复选框。一切都很好,除了最后一个。
我在上面发布的所有代码都以此脚本开头,该脚本旨在使复选框答案更易于管理:
if (isset($_POST))
{
// Check that the 2 correct answers are set, and the 3 incorrect answers are not set
if (isset($_POST['q10-A'], $_POST['q10-B'], $_POST['q10-C']) &&
!isset($_POST['q10-D']) &&
!isset($_POST['q10-E']) &&
!isset($_POST['q10-F']))
{
$Ch = 'A';
}
else
{
$Ch = 'B';
}
}
正如您所看到的,我尝试通过将值“A”赋予正确的单选复选框组选择(在本例中为A,B和C)来使其工作。但它不起作用。如果我用'A'替换''。$ Ch。''它仍然不起作用。
$answers = [1 => 'A', 2 => 'Jupiter', 3 => 'C', 4 => 'D', 5 => 'A', 6 => 'C', 7 => 'C', 8 => 'C', 9 => 'B', 10 => ''.$Ch.''];
所以我很困惑。任何人都可以告诉我正确的方法来做我正在尝试做的事情或向我展示另一种选择吗?