获取在数组中的表单中发布的值

时间:2011-09-14 04:38:59

标签: php arrays post

我正在制作和计算机化的考试系统,其中学生每个问题得到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的发布值,这是隐藏字段并打印出来。

1 个答案:

答案 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