在选择了十个问题测验的一系列答案后,用户点击提交按钮并转发到其他页面(grade.php),在那里他们可以看到他们的分数。
如果我用var_dump($ _ POST)显示结果,我得到以下数组:
array(10) { ["q1"]=> array(1) { [0]=> string(1) "D" } ["q2"]=> array(1) { [0]=> string(1) "A" } ["q3"]=> array(1) { [0]=> string(1) "C" } ["q4"]=> array(1) { [0]=> string(1) "A" } ["q5"]=> array(1) { [0]=> string(5) "Libya" } ["q6"]=> array(1) { [0]=> string(1) "D" } ["q7"]=> array(1) { [0]=> string(1) "D" }
在这个特定的例子中,用户正确回答了前五个问题,得到了接下来的两个错误,并且没有回答问题8-10。
在食物链的更下方,答案以如下格式显示:
<div class="Correct">1. Jupiter $Img</div>
<div>1. Mars $Img</div>
<div>1. Venus $Img</div>
<div>1. Pluto $Img</div>
我只是使用我的数据库表来插入class =&#34;更正&#34;在正确的答案,将相应的样式。我的下一个目标是确定用户选择的答案并插入适当的图像(正确答案的金星或错误答案的复选标记)。
我试图找出如何创建第二个具有正确答案的数组,并以某种方式将其与具有用户选择的数组进行比较。但是,我刚才意识到可能有更好的方法。
让我们首先关注第一个问题。想象一下,如果我们写了一个类似于此的脚本:
if ($_POST[1] === $Key[1])
{
$Img = 'star.png';
}
elseif ($_POST[1] != $Key[1])
{
$img = 'check.png';
}
现在假设我们用一个可以代表任何数字的变量替换数字1。该脚本告诉我们,如果第一个数组中与#2相关联的值与第二个数组中与#2相关联的值匹配,则将显示一个星号。如果#3的两个答案匹配,他们也会获得一颗星。如果用户对#4的回答与#4的正确答案不符,则会显示复选标记。
if ($_POST[X] === $Key[X])
{
$Img = 'star.png';
}
elseif ($_POST[X] != $Key[X])
{
$img = 'check.png';
}
可以这样做吗?如果是这样,有人能告诉我写这个脚本的正确方法吗?
我还有几个要跳过的箍。我可以用这样的东西显示正确的答案:
echo join( $Value, '' );
但我还没弄明白如何显示它们,所以它们看起来像var_dump数组。但在我继续沿着这条道路走下去之前,我想知道我能做什么是不可能的。