2011-09-14 6 views
-1

私は、学生が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

あなたの問題は何ですか? –

答えて

2

あなたは本当に多くの情報を与えておらず、投稿されたコードにいくつかの誤りがあるので、私はこれを一般的に答えて、あなたにそれを統合しようとします。

本質的に無意味な名前をフォーム値に割り当てているため、値を意味のある方法で検索することが非常に複雑になります。 PHPの引数解析は、引数を配列に解析する便利な機能を提供するので、それらを使用することをお勧めします。

たとえば、フォームに次の入力ボックスと名前がある場合、POSTされたデータは非常に簡単です。

<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 
) 
) 

あなたが実際にあなたが提出した値を処理する方法を示していないので、私は本当に多くの情報を与えることができないが、これは容易な処理のためにフォームデータを構造化するための最良の方法です。

このページには、非常に基本的な例がいくつかあります。

+0

本当にありがとう、私は本当に感謝しています... – Nyaro

関連する問題