有一段時間沒有寫入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' />";
}
能否請你告訴你一直想那麼遠? – Striezel
這可以通過幾種方法來實現...您必須使用JS或jQuery來做到這一點。 –