2017-07-19 112 views
1

您好,我有一個PHP代碼,其中我在while循環中回顯表單輸入。我的代碼的邏輯是,我從表中選擇問題,然後當它提取行時,每次它將回顯表單作爲多項選擇問題的測驗。所以現在如果表中有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

什麼是*不*工作;你有什麼問題? '$ exam_id'從哪裏來?你的問題不清楚。 –

+0

我不知道在哪裏把表單提交按鈕來獲得$ _POST值。如果我把它放在循環內部,它會打印每一個問題,或者如果我把它放在循環之外它不會工作,因爲表單標籤被關閉。我想要做的是現在爲每個問題,我想檢查答案,如果$ _POST ['answer'] == $ row ['answer'],$ _POST ['answer']是的形式值單選按鈕 –

+0

看看你的錯誤日誌,你有一個開始時沒有關閉while循環,所以我想這實際上並不編譯 – RiggsFolly

回答

1

這裏的形式值一個解決方案通過使用計數器和只添加當所有行都打印完後提交標籤

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

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

我假設條件應該是($ count == Count($ row)){ –