我正在创建一个简单的测验,我将使用 php 和 JSON,我想做的是测验将从第一个问题到第二个问题,如果选择了一个新答案,我希望它也保留在最后一页,如果所有的问题都填好了它会给出结果。
这就是我目前所拥有的 HTML
<!DOCTYPE html>
<html>
<head>
<title>The quiz</title>
</head>
<body>
<form action="/quiz/classes/quiz.php?" method="POST">
<p>question</p>
<input type="radio" name="answer1">
<label for="answer1">answer1</label><br>
<input type="radio" name="answer2">
<label for="answer2">answer2</label><br>
<input type="radio" name="answer3">
<label for="answer3">answer3</label><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
PHP
class Quiz
{
public function __construct()
{
$answer = [];
$answer[] = new Answer("answer 1", true);
$answer[] = new Answer("answer 2", false);
$answer[] = new Answer("answer 3", true);
$question = []; //parameters
$question = new Question(1, "question 1", [$answer[1], $answer[3]]);
$question = new Question(2, "question 2", [$answer[2], $answer[2]]);
$question = new Question(3, "question 3", [$answer[3], $answer[1]]);
$this->quiz = new Quiz($vragen);
$answer = json_encode([$_POST["question 1"], $_POST["question 2"], $_POST["question 3"]]);
print_r(json_decode($answer));
}
}
我不会给你代码,但我会帮你弄明白。
如果您不打算使用 JavaScript 进行“流畅”的测验,您将需要做很多“加载下一页”的工作。
您已经有了“表单”元素和提交按钮,这太棒了。 接下来,您需要实际评估传递给 quiz.php 中的
$_POST
superglobal 的值,并将其存储在会话中。 (session_start()
/$_SESSION
).
使用会话中的信息,您的后端页面将始终知道已经回答了哪些问题,并能够显示“下一个”问题,直到所有问题都被问到。
由于您还在会话中存储了答案(或者更确切地说是“正确与否”),因此实际构建结果屏幕应该是微不足道的。