我正在建立一个在线测验,但我无法计算正确值的数量。每个问题都有以下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的值。
答案 0 :(得分:0)
除非您使用JS检查答案,否则没有理由将答案放在隐藏的输入中。
将您的输入命名为与答案数组对齐,然后将其全部循环。