将输入值与表单字段值匹配

时间:2017-08-31 08:03:29

标签: php html forms

我正在建立一个在线测验,但我无法计算正确值的数量。每个问题都有以下HTML:

<div class="form-group">
  <label for="question <?PHP echo $question['id']; ?>"><?PHP echo $question['question']; ?></label>
  <input type="hidden" value="<?PHP echo $question['answer']; ?>" name="original_number[]">
  <input type="number" class="form-control" name="input_number[]" placeholder="<?PHP echo $question['question']; ?>" required>
</div>

隐藏的输入包含实际的正确答案。我想我可以逃避这个,因为测验是小学生的数学考试。问题和答案都存储在数据库中,因此我的代码遍历每个问题,并为每个问题输出上述HTML。

当涉及到实际提交表单然后根据正确答案检查每个输入时,我到目前为止所尝试的所有内容似乎都没有用,我已经尝试foreach围绕每个问题循环,但似乎没有效果。

理想情况下,每个正确答案都需要为变量添加+1。如果表单提交后该变量与问题总数相匹配,则测试标记为完成(我已经为此准备了代码)。

以下是我尝试过的几件事:

foreach ($original as $key => $value) { echo '<p>'.$key.'</p>'; foreach($value as $k => $v) { echo '<p>'.$k.'</p>'; echo '<p>'.$v.'</p>'; echo '<hr />'; }

^只输出0-12的数字列表

foreach ($_POST as $key => $value) { echo '<p>'.$key.'</p>'; foreach($value as $k => $v) { echo '<p>'.$k.'</p>'; echo '<p>'.$v.'</p>'; echo '<hr />'; }

这输出2个列表。第一个列表是0-12,然​​后是original_number的值。第二个列表也是0-12并输出input_number的值。

1 个答案:

答案 0 :(得分:0)

除非您使用JS检查答案,否则没有理由将答案放在隐藏的输入中。

将您的输入命名为与答案数组对齐,然后将其全部循环。