2017-07-19 9 views
1

こんにちは私はwhileループで入力をエコーするPHPコードを持っています。私のコードのロジックは、私はテーブルから質問を選択し、それが複数の選択問題のクイズのフォームをエコーするたびに、行をフェッチすることです。テーブルに20個の質問がある場合、私のコードは20個のフォームを質問でエコーします。送信ボタンを押すと、各フォームから選択した各ラジオボタンの値を取得し、自分のテーブルの回答欄で確認したいと思います。PHPはwhileループ内の入力フォームから値を取得します

<?php 
include 'connection.php'; 

$query = "SELECT question,type,option1,option2,option3,option4,option5,option6,answer FROM question WHERE exam_id = '$exam_id'"; 
$result = mysqli_query($connection, $query); 

while($row=mysqli_fetch_assoc($result)) 
{ 

    if ($row['type'] == "mcq") { 
     echo ' 
     <form class="form-horizontal" role="form" method="POST" action=""> 
      <div class="form-group"> 

      <div class="col-sm-10"> 
      <p>'. $row["question"] . ' </p> 

      </div> 
      </div> 
      <div id="form-label"> 
      <p class="alignleft"><b>Answer:</b></p> 

       <div style="clear: both;"></div> 
      </div> 

      <!-- Text input--> 
      <div class="form-group"> 
      <div class="col-md-2"> 
      A. <input type="radio" placeholder="" name="answer" value = "a" id="" required> ' . $row["option1"]. 
      ' </div> 

      </div> 
      <!-- Text input--> 
      <div class="form-group"> 
      <div class="col-md-2"> 
      B. <input type="radio" placeholder="" name="answer" value= "b" id=""> ' . $row["option2"]. 
      '</div> 

      </div> 

      <!-- Text input--> 
      <div class="form-group"> 
      <div class="col-md-2"> 
       C. <input type="radio" placeholder="" name="answer" value= "c" id=""> ' . $row["option3"].' 
      </div> 

      </div> 

     <!-- Text input--> 
     <div class="form-group"> 
      <div class="col-md-2"> 
      D. <input type="radio" placeholder="" name="answer" value= "d" id=""> ' . $row["option4"].' 
     </form>'; 
    } 
?> 

私の問題私は$_POST値を取得するには、フォームが送信ボタンを配置する場所を知らない

: はここに私のコードです。私がループの中に置くと、すべての質問のために印刷されます。あるいは、ループの外側に置くと、フォームタグはそれまでに閉じられているので動作しません。

私はやってみたかったことは、私は$_POST['answer'] == $row['answer']場合取ることで答えを確認したいすべての質問のために、$_POST['answer']は、ラジオボタン

+3

what is * not *あなたは何を持っているのですか? '$ exam_id'はどこから来ますか?あなたの質問は不明です。 –

+0

$ _POST値を取得するためにフォーム送信ボタンをどこに置くべきかわかりません。私はループ内に置く場合は、すべての質問のために印刷されますか、またはフォームタグが閉じられているので、私はそれは動作しませんループの外に置く場合。 $ _POST ['answer'] == $ row ['answer']の場合、$ _POST ['answer']はフォームの値です。ラジオボタン –

+0

あなたのエラーログを見て、開始のための非閉ループのループがあるので、実際にはコンパイルされないと思います。 – RiggsFolly

答えて

1

のフォーム値である。ここでカウンタを使用することにより、一つの解決策であり、唯一の追加すべての行が印刷されたときに最後にsubmitタグを入力してください。

$count = 0; 
while($row=mysqli_fetch_assoc($result)) 
{ 
$count = $count + 1; 

if($count == Count($row)){ 
    Add submit button here 
} 
} 
+1

条件がif($ count == Count($ row)){ –

関連する問題