2013-04-11 93 views
0

我有一个包含多项选择复选框的测试窗体。隐藏测试的正确答案

每个答案都来自WordPress的拉,就是一个循环中,每个个体复选框以下列方式输出:

<input type="checkbox" name="answer[]" value="<?php echo $row['answer']; ?>" /> 

在WordPress相邻的答案是一个复选框,如果选中,那么就意味着它的正确答案。这是与输出:

$row['correct']; 

我怎样才能将数据传递到另一个页面,以检查用户检查答案是否正确或不无允许用户查看源代码才能看到答案?

在第二页我用下面的输出答案的用户检查:

$answer = implode(", ",$_POST["answer"]); 
echo $answer; 

显然,这些都是从表单中输入拉。我如何检查每一个是否正确?这个

回答

1

它看起来像你存储一个JavaScript阵列

<input type="checkbox" name="answer[]"...的答案,这可能是由PHP(在任何一个页面的形式张贴到)通过以下阅读:

$answers = json_decode($_POST['answer'])

这是假设你的形式使用POST方法,否则更改$_POST$_GET

从那里可以使用包含条件表达式的for()循环来循环阵列,即if($answers[$i] !== $correctAnswers[$i]) $wrongAnswers++ else $correctAnswers++或类似的。

这一切发生在服务器端,将不能被客户看到。

由于用户将被张贴到在表单提交的计算网页,你可以使用header('Location: results.php');来引导他们从一个空白页了。它应该包含在得分计算循环后的脚本末尾。

想想吧,如果您计划通知用户他们是怎么做的,那么您可能需要将得分存储在$_SESSION[]中,因此可以从结果页面读取它。

0

两种可行的方法,因为我看到它:

  1. 号码的问题,然后在你的PHP文件中的开关语句(或地图),以获取正确答案的问题,并检查就这样。

  2. 组的下一个正确的值到每个页面上的会话,并在生成的PHP页面阅读。

第一个选项可能会更可取。