2016-09-17 50 views
-2

我正在爲我的學生進行測驗。我想以這樣的方式來解決問題1(以此類推),只能看到問題2。填寫正確的值時繼續到下一頁

我現在的想法是讓每一個問題,網頁上有一個表格:

<FORM action="test.php" method="post"> 
<I>12 is the right answer:</I> 
<INPUT TYPE="text" NAME="name" SIZE="20" MAXLENGTH="30"><BR> 
<INPUT TYPE="submit" VALUE="send"> 
</FORM> 

而且後來,我嘗試從test.php的重定向到next.php當答案是12到current.php時,答案不是12.雖然,我無法做到這一點。誰能幫我?

+0

能否請你告訴你一直想那麼遠? – Striezel

+0

這可以通過幾種方法來實現...您必須使用JS或jQuery來做到這一點。 –

回答

0

有一段時間沒有寫入php代碼,但會嘗試引導你。

不,你不應該爲每個問題創建一個網頁。這不是一種可擴展的方法。想象一下,如果你必須隨着時間的推移,存儲1000個問題。

反而在php中使用動態頁面加載概念。這裏是你應該做的:

1,創建在哪個數據庫您使用的領域,如

Id,question,option1,option2,option3,option4,correctAnswer 
  • 像quiz.php它創建一個PHP頁面根據存儲在會話變量中的questionId讀取問題。
  • 假設您在首頁顯示第一個問題,顯示選項並顯示提交按鈕。

    當用戶點擊提交按鈕時應該發生的是,同樣的quiz.php頁面將被用戶選擇的答案稱爲courty <form action="quiz.php">

    然後,您可以檢查在PHP文件中的正確答案,因爲你有正確的答案存儲在一個變量,它存儲第一個問題的數據庫提取結果,如果這是正確的答案,你可以更新會話與ID爲next問題(按1或任何其他機制增加)並查詢數據庫表中的問題ID。

    您的html應該以這樣的方式編寫,它讀取存儲在$ row變量中的當前值,該變量將查詢w.r.t的結果存儲到存儲在session中的questionId中。

    代碼點點:

    quiz.php文件:

    <?php 
    $con=mysql_connect($dbserver,$dbusername,$dbpassword); 
    if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
    mysql_select_db($dbname, $con); 
    
    // Check user answer for previous question 
    if (isset($_POST['submit'])) { 
    if(isset($_SESSION['question_id'])){ 
        $previous_question_id = (int) $_POST['question_id']; 
    
        // Query database 
        $getQuestion = "SELECT * from questions_table where id =  
        $previous_question_id"; 
        $resultOfQuestion = mysqli_query($conn, $getQuestion); 
    
        $correct = $row_get_question['correctAnswer']; 
        $selected_radio = $_POST['answer']; 
    
        if ($selected_radio == $correct) 
         echo "THAT ANSWER IS CORRECT"; 
         $_SESSION['question_id'] = $previous_question_id +1; 
    
         $getQuestion = "SELECT * from questions_table where 
        (id=".$_SESSION['question_id'].")"; 
         $resultOfQuestion = mysqli_query($conn, $getQuestion); 
    
        else 
         echo "THAT ANSWER IS WRONG!"; 
        } 
    
    
        } 
    
    
    if(!isset($_SESSION['question_id'])) { 
    $_SESSION['question_id']="0"; 
    $getQuestion = mysql_query("SELECT * FROM questions WHERE  
    (id=".$_SESSION['question_id'].")"; 
    $resultOfQuestion  = mysqli_query($conn, $getQuestion); 
    } 
    
    
    echo "<form action='quiz.php' method='post'>"; 
    while($row = mysql_fetch_array($resultOfQuestion)){ 
    
        echo " <b>" . $row['question'] . "</b>"; 
    
        echo "<input type='radio' value='' name='answer' checked />"; 
        echo $row['option1']; echo "<br />"; 
        echo "<input type='radio' value='' name='answer' />"; 
        echo $row['option2'];echo "<br />"; 
        echo "<input type='radio' value='' name='answer' />"; 
        echo $row['option3'];echo "<br />"; 
        echo "<input type='radio' value='' name='answer' />"; 
        echo $row['option4'];echo "<br />"; 
    
        echo "<input type='submit' name='next' value='next' />"; 
    
    
    }