2015-07-22 25 views
0

我有一個數據庫,這個結構我有4個問題。我的工作是顯示2個隨機問題及其選項,當用戶點擊提交時,應該檢查correct_ans並顯示結果。動態測驗應用程序答案PHP中的驗證問題

Qid | Question | A | B | C | D | Correct_ans 
1 | Question | | | | |Correct Ans 
2 | Question | | | | |Correct Ans 
3 | Question | | | | |Correct Ans 
4 | Question | | | | |Correct Ans 

這裏是我的代碼

<?php 
if(isset($_POST['test'])){ 
$x = $_POST["$id"]; 
echo $x; 
} 
?> 
<html> 
<head> 
</head> 
<body> 

<?php 
include("db-con.php"); 
$sql1 = "SELECT * from questions ORDER BY RAND() LIMIT 2"; 
$result1 = mysql_query($sql1,$con); 

    echo"<form method='post' action=''>"; 
    while($row1 = mysql_fetch_assoc($result1)) 
    { 
     $id = 'q' . $row1['quesid']; 
     $question = $row1['question']; 
     $solution = $row1['solution']; 
     $ans_array = array($row1['A'],$row1['X'],$row1['Y'],$row1['Z']); 
     $test = shuffle($ans_array); 
    // Generate Questions and Display Options 

     echo $question . '<br />'; 
     echo "<input type='radio' value='$ans_array[0]' name=\"$id\" />" . $ans_array[0]. '<br />'; 
     echo "<input type='radio' value='$ans_array[1]' name=\"$id\" />" . $ans_array[1] . '<br />'; 
     echo "<input type='radio' value='$ans_array[2]' name=\"$id\" />" . $ans_array[2] . '<br />'; 
     echo "<input type='radio' value='$ans_array[3]' name=\"$id\" />" . $ans_array[3] . '<br />'; 

    } 
    echo"<input type='submit' name='test' Value='Submit' />"; 
    echo"</form>"; 


?> 


</body> 
</html> 

我的問題是

當我點擊提交我不能夠得到這個問題的id和無法從數據庫中查詢。當我試圖訪問$id來檢查所選答案時,我總是收到索引錯誤。

如果我理解正確$id不是一個全局變量,這就是爲什麼我沒有得到它後,我提交表單。我試圖把$id作爲全球的,但同樣的錯誤。

任何人都可以幫助我找到解決方案。

感謝&問候 貨車

+0

,您提供的不工作,而不是代碼,不工作的代碼,這是代碼隱藏字段您遇到問題了,哪些是您需要我們幫助您解決的代碼?對你來說沒有什麼奇怪的?也許看到一個輕微的問題? – Sherif

+0

我想要在提交後如何捕捉值以及如何檢查結果。我不確定我應該怎麼走 –

+0

那麼,您給每個'input'字段的'name'屬性都會出現在'$ _POST'中。你把'$ id'放在那裏,這可能不是你想要做的。相反,把'$ id'作爲一個隱藏的輸入(比如''而不是你的答案輸入名稱'name =「answer」'然後你抓住'$ _POST ['answer']'和'$ _POST ['id']'的值分別爲 – Sherif

回答

1

下面的代碼來生成隨機的問題。這將選擇隨機問題。

function randomGen($min, $max, $quantity) 
{  
    $numbers = range($min, $max); 
    shuffle($numbers); 
    return array_slice($numbers, 0, $quantity); 
} 

$a = (randomGen(1,4,3)); //generates 2 unique random numbers 


for($i=1;$i<=2;$i++){ 
    $q = $a[$i];  
} 

和檢索ID必須添加

<input type="hidden" name="id" id="id" value="value of id whicch is generated by random number">

+0

你解決了你的問題嗎? – LOKESH