2016-09-16 49 views
0

我有一個文本文件,其中包含用於創建測驗的信息。但是,我一次只顯示一個測驗問題。我基於問題的數量生成單選按鈕,然後在生成單選按鈕的循環後面有一個提交按鈕。當我點擊提交時,我無法弄清楚如何獲得用戶在$ _POST數組中選擇的單選按鈕。我最初的想法是使用表單標籤,然後讓循環運行,但我不知道這是否工作或如何使它在語法上工作。如何檢查用戶選中的單選按鈕是否在表格中

文本文件(最後一個號碼是正確的答案的索引):

What does charmander evolve to?#Charmeleon:charizard:squirtle#0 
WHo is the main character in Pokemon?#Misty:Ash:Obama#1 

腳本:

<?php 

     $indexTemp = intVal($_SESSION["index"]); 

     if($_SESSION["numQuestions"] == $indexTemp){ 
      echo "Your Results are: "; 
      echo "<form action=\"process.php\" method=\"post\"> Back to Main screen: <input type=\"submit\"><br \> </form>"; 
      exit(); 
     } 

     $filename = $_SESSION["quizOfTheDay"]; 

     $quizStuff = file($filename); 
     $ctr =1; 


     $questionInfo = $quizStuff[$indexTemp]; 

     $questionParse = explode("#", $questionInfo); 
     $_SESSION["correctAns"] = $questionParse[2]; 
     echo $_SESSION["correctAns"]." from line 55 <br />"; 
     $answerChoices = explode(":",$questionParse[1]); 

     echo "$questionParse[0] ? <br />"; 
     #This is where the radio buttons are being generated 
     foreach ($answerChoices as $answerChoice) { 
       echo "<input type='radio' name='ans$ctr' id='q1' value='$ctr'> <label for='q1'> $answerChoice </label> <br />"; 
       $ctr +=1; 
      } 
     $_SESSION["index"] = $indexTemp +1; 
     echo "<form action=\"questions.php\" method=\"post\"> <input type=\"submit\"><br \> </form>"; 


    ?> 
+0

僅有回聲''

上述的foreach和回聲'
'後呢?您也不應該爲每個單選按鈕動態地創建唯一的名稱。這將使每個按鈕可以同時選擇。所有答案都需要相同的名稱值。 id值應該是唯一的。一般規則:ID應始終是唯一的。 – icecub

+0

無線電輸入應該有相同的名稱,但不同的值,不要更改'name'。然後你只需檢查'$ _POST ['ans']'的值。 –

回答

0

獲取從單選按鈕和複選框數據可以是有點複雜,一般是由於缺乏對單選按鈕和複選框如何工作的理解。

重要的是要記住兩個事實是很重要的:

  1. 複選框「名稱」必須是唯一的每個複選框
  2. 單選按鈕「名稱」必須相同,每個按鈕組

enter image description here

更新該foreach,因爲您必須對所有單選按鈕有same name但具有不同的值。

<?php 
foreach ($answerChoices as $answerChoice) { 
echo "<input type='radio' name='ans' id='q1' value=".$ctr."> <label for='q1'>".$answerChoice."</label> <br />"; 
$ctr +=1; 
} 
?> 

現在你的,每個級聯看起來也錯了,我已經更新了它,因爲級聯是錯誤的值不會顯示在單選按鈕。單選按鈕值將是增量變量的計數。

+0

感謝您的迴應!作爲後續,爲了在提交命中後訪問該值,是否需要在for循環之前添加表單標記? –

+0

@ J.Doe。 Thnaks。很高興幫助你.. –

0

刪除$ CTR

foreach ($answerChoices as $answerChoice) { 
       echo "<input type='radio' name='ans' id='q1' value='$ctr'> <label for='q1'> $answerChoice </label> <br />"; 
       $ctr +=1; 
      } 
相關問題