我正在制作和计算机化的考试系统,其中学生每个问题得到50个问题和3个选择。我在选项卡中显示了问题,其中每个选项卡包含10个问题。我已经制作了表格,但很难弄清楚发布的价值。
这是我的代码:
<div id="page-wrap">
<div id="tabs">
<ul>
<li><a href="#fragment-1">Questions 1-10</a></li>
<li><a href="#fragment-2">Questions 11-20</a></li>
<li><a href="#fragment-3">Questions 21-30</a></li>
<li><a href="#fragment-4">Questions 31-40</a></li>
<li><a href="#fragment-5">Questions 41-50</a></li>
</ul>
<form method="post" action="result.php" >
<?php
$data = $objQuestion_set->selectDetail($exam_id, $registration_id);
$objQuestion_bank = new Question_bank();
?>
<div id="fragment-1" class="ui-tabs-panel ui-tabs-hide">
<?php
$value[] = $data['question_1'];
$value[] = $data['question_2'];
$value[] = $data['question_3'];
$value[] = $data['question_4'];
$value[] = $data['question_5'];
$value[] = $data['question_6'];
$value[] = $data['question_7'];
$value[] = $data['question_8'];
$value[] = $data['question_9'];
$value[] = $data['question_10'];
for($i = 1; $i <=10; $i++)
{
$question = $objQuestion_bank->selectDetail($value[$i-1]);
echo "<div><p>".$i . '.' . $question['question']."</p>";
echo "<br />";
?>
<input type="radio" id="answer_1_2" name="answer_<?php echo $i;?>" value="<?php echo $question['answer_1'];?>" /><label for="answer_1"><?php echo $question['answer_1'];?></label>
<input type="radio" id="answer_1_2" name="answer_<?php echo $i;?>" value="<?php echo $question['answer_2'];?>" /><label for="answer_1"><?php echo $question['answer_2'];?></label>
<input type="radio" id="answer_1_2" name="answer_<?php echo $i;?>" value="<?php echo $question['answer_3'];?>" /><label for="answer_1"><?php echo $question['answer_3'];?></label>
<input type="hidden" id="question_id_<?php echo $i;?>" name="question_id_<?php echo $i;?>" value="<?php echo $question['question_id']; ?>"class="hidden_element" />
<?php
echo "</div>";
echo "<br /><br />";
}
?>
</div>
现在我想获取question_id的发布值,这是隐藏字段并打印出来。
答案 0 :(得分:2)
您没有真正提供太多信息,并且您发布的代码中存在一些错误,因此我将对此进行一般性回答并留给您尝试集成它。
您正在为表单值指定基本无用的名称,这使得以有意义的方式检索值非常复杂。 PHP的参数解析提供了将参数解析为数组的有用功能,因此我建议使用它们。
例如,如果表单中有以下输入框和名称,则POSTed数据将非常简单。
<input type="radio" name="values[<?php print $i; ?>][answer]" value="1">
<input type="radio" name="values[<?php print $i; ?>][answer]" value="2">
<input type="radio" name="values[<?php print $i; ?>][answer]" value="3">
<input type="radio" name="values[<?php print $i; ?>][answer]" value="4">
<input type="hidden" name="values[<?php print $i; ?>][question]" value="10">
如果$ i值不重要,你可以这样做。
<input type="radio" name="values[][answer]" value="1">
<input type="radio" name="values[][answer]" value="2">
<input type="radio" name="values[][answer]" value="3">
<input type="radio" name="values[][answer]" value="4">
<input type="hidden" name="values[][question]" value="10">
这两个都会使你的$ _POST数组成为一个漂亮的嵌套数组,如下所示。
<?php
$_POST['values'] == array(
array(
'answer' => 3,
'question' => 1
),
array(
'answer' => 2,
'question' => 2
)
)
您实际上并未显示处理提交值的方式,因此我无法提供更多信息,但这是构建表单数据以便于处理的最佳方法。
这个页面有一些非常基本的例子。 http://www.askaboutphp.com/23/parsing-url-queryingstring.html