2016-02-16 83 views
0

我用PHP(Codeigniter)和MySQL做了多項選擇。我在嘗試從每個問題的答案(使用動態名稱)檢索值時遇到了麻煩。下面是單選按鈕的代碼:多種選擇PHP

<input type="radio" name="question_id (according to id of question)" value="answer_id"> 

所以,如果我有3個隨機出題,該結構將

<p>Question number 1 goes here</p> 
<input type="radio" name="question_id1[]" value="1"> 
<input type="radio" name="question_id1[]" value="2"> 
<input type="radio" name="question_id1[]" value="3"> 
<input type="radio" name="question_id1[]" value="4"> 
<input type="radio" name="question_id1[]" value="5"> 


<p>Question number 6 goes here</p> 
<input type="radio" name="question_id6[]" value="1"> 
<input type="radio" name="question_id6[]" value="2"> 
<input type="radio" name="question_id6[]" value="3"> 
<input type="radio" name="question_id6[]" value="4"> 
<input type="radio" name="question_id6[]" value="5"> 


<p>Question number 9 goes here</p> 
<input type="radio" name="question_id9[]" value="1"> 
<input type="radio" name="question_id9[]" value="2"> 
<input type="radio" name="question_id9[]" value="3"> 
<input type="radio" name="question_id9[]" value="4"> 
<input type="radio" name="question_id9[]" value="5"> 

如何檢索,涉及到這個問題的答案?例如把它放在像陣列:

array p = ['id_question' => 21, 'id_answer'=4] 

The radio button structure

+0

where is question_id? –

+0

將您的格式從'name ='question_id1 []「'更改爲'name =」question_id [1]「'。這樣你可以做一個'foreach($ _ POST ['question_id']作爲$ id => $ answer)' – Sean

+0

然後我也簡單地將你的答案數組寫成'[id_question => id_answer]',即。 '$ answers = [21 => 4]',然後在我上次評論中使用'foreach()',foreach($ _ POST ['question_id'] as $ id => $ answer){if($ answer = = $ answers [$ id])echo「You got Question#」。$ id。「Correct!」;否則回聲「你有問題#」。$ id。「錯!」; }' – Sean

回答

0

<p>Question number 9 goes here</p> 
<input type="radio" name="question_id[9]" value="1"> 
<input type="radio" name="question_id[9]" value="2"> 
<input type="radio" name="question_id[9]" value="3"> 
<input type="radio" name="question_id[9]" value="4"> 
<input type="radio" name="question_id[9]" value="5"> 
<p>Question number 6 goes here</p> 
<input type="radio" name="question_id[6]" value="1"> 
<input type="radio" name="question_id[6]" value="2"> 
<input type="radio" name="question_id[6]" value="3"> 
<input type="radio" name="question_id[6]" value="4"> 
<input type="radio" name="question_id[6]" value="5"> 

而在服務器側

<?php 
//assuming form method is post 
$questions_array = array(); 
foreach($_POST[question_id] as $key=>$answer) 
{ 
    $questions_array[] = array('id_question' => $key, 'id_answer'= $answer); 
} 
print_r($questions_array); 
?> 

假設用戶嘗試可以選擇單個無線電按鈕單個問題....

+0

謝謝所以很多..我仍然感到困惑..什麼$ key => $ answer在這裏做? –

+0

$ key是問題的標識,$ answer是該問題的答案ID .... –

+0

如果符合您的要求,則將其標記爲答案...在左側查找「0」,在其下單擊「刻度標記」在那個.... –

0

我已經把表單中的代碼和我提交它的提交按鈕。然後輸出我得到它是 陣列 ( [question_id1] =>數組 ( [0] => 3 )

[question_id6] => Array 
    (
     [0] => 2 
    ) 

[question_id9] => Array 
    (
     [0] => 3 
    ) 

[submit] => submit 

) 因此,我們可以用相同的名稱訪問。我用普通的PHP代碼做了。因爲形成的數組在覈心php和codeigniter中都是相同的。所以我們可以通過for循環訪問它。

+0

非常感謝..我需要學習代碼無論如何.. –