Php 填写正确值时继续下一页
我正在为我的学生做一个测验。我想这样做,你只能在解决问题1之后才能看到问题2,依此类推Php 填写正确值时继续下一页,php,Php,我正在为我的学生做一个测验。我想这样做,你只能在解决问题1之后才能看到问题2,依此类推 Id,question,option1,option2,option3,option4,correctAnswer 我目前的想法是为每个问题制作一个网页,上面有一个表单: <FORM action="test.php" method="post"> <I>12 is the right answer:</I> <INPUT TYPE="text" NAME="nam
Id,question,option1,option2,option3,option4,correctAnswer
我目前的想法是为每个问题制作一个网页,上面有一个表单:
<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>
Id,question,option1,option2,option3,option4,correctAnswer
然后,我尝试在答案为12时从test.php重定向到next.php,在答案不是12时重定向到current.php。尽管如此,我还是无法做到这一点。有人能帮我吗?已经有一段时间没有编写php代码了,但会尝试为您提供指导
Id,question,option1,option2,option3,option4,correctAnswer
不,您不应该为每个问题创建网页。这不是一种可扩展的方法。想象一下,如果你必须在一段时间内存储1000个问题,那么
Id,question,option1,option2,option3,option4,correctAnswer
相反,在php中使用动态页面加载概念。以下是您应该做的:
Id,question,option1,option2,option3,option4,correctAnswer
1.在您使用的任何数据库中创建一个表,包括
Id,question,option1,option2,option3,option4,correctAnswer
创建一个php页面,如quick.php,它根据会话变量中存储的questionId读取问题。
假设您在首页显示第一个问题,显示选项并显示提交按钮
Id,question,option1,option2,option3,option4,correctAnswer
当用户单击submit按钮时,应该发生的是,相同的quick.php页面将使用用户选择的答案调用courtsy
Id,question,option1,option2,option3,option4,correctAnswer
然后,您可以在php文件中检查正确答案,因为正确答案存储在一个变量中,该变量存储第一个问题的数据库获取结果,如果答案正确,您可以使用下一个问题增量的id 1或任何其他机制更新会话,并查询数据库表中的该问题id
Id,question,option1,option2,option3,option4,correctAnswer
您的html应该以这样一种方式编写:读取存储在$row变量中的当前值,该变量将查询结果w.r.t存储到会话中存储的questionId
Id,question,option1,option2,option3,option4,correctAnswer
代码的一小部分:
Id,question,option1,option2,option3,option4,correctAnswer
quick.php文件:
Id,question,option1,option2,option3,option4,correctAnswer
<?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' />";
}
你能展示一下到目前为止你一直在尝试什么吗?这可以通过几种方式实现。。。您必须使用JS或jquery进行此操作。