В последнее время я столкнулся с проблемой при настройке теста в PHP. У меня есть тест, настроенный с использованием счетчика, который затем используется для проверки ответа, например, если вопрос правильный, счетчик поднимается на единицу, чтобы перейти к следующему вопросу. В конце викторины я хотел сказать, что после того, как на все вопросы ответят, вы перенаправите страницу. Чтобы достичь этого, я подумал, что самый простой способ - установить еще один оператор else{ if{}}
, который говорит, когда $currentQuestion==3
, чтобы перенаправить страницу. Как только счетчик достигает трех, он не перенаправляет страницу. Вот пример:
$currentQuestion = 0;
if(isset($_POST["currentQuestion"])){
$currentQuestion = $_POST["currentQuestion"];
if($_POST["guess"] == $questionsAndAnwsers[$currentQuestion] ["answer"]){
$currentQuestion++;
print("Answer Correct<br>");
print("Next Question Below<br><br>");
}
else {
$currentQuestion=0;
print("You have failed..");
}}
else{
if($currentQuestion==3){
header("Location: http://students.purchase.edu/martin.mcnicholas/scriptingfortheweb/index2. html"); /* Redirect browser */
exit();
}
}
В кулак я подумал, что, может быть, он не узнает номер счетчика, как показано выше:
else {
$currentQuestion=0;
print("You have failed..");
}}
Мне удалось установить его на ноль, чтобы вернуться к первоначальному первому вопросу. Я также смог изменить его на любой номер счетчика, и, если я отвечу неправильно, я выпаду на вопрос, соответствующий счетчику. Я также попытался поместить else, если он внутри if(isset($_POST["currentQuestion"])){
, но это полностью нарушает мою программу.
Часть кода, содержащая html:
// current question
$currentQuestion = 0;
if(isset($_POST["currentQuestion"])){
$currentQuestion = $_POST["currentQuestion"];
if($_POST["guess"] == $questionsAndAnwsers[$currentQuestion]["answer"]){
$currentQuestion++;
print("Answer Correct<br>");
print("Next Question Below<br><br>");
}
else {
$currentQuestion=0;
print("You have failed..");
}}
else{
if($currentQuestion==3){
header("Location: http://students.purchase.edu/martin.mcnicholas/scriptingfortheweb/index2.html"); /* Redirect browser */
exit();
}
}
?>
<form method="POST" action="">
<label for="question"><?php echo ($currentQuestion+1).". ". $questionsAndAnwsers[$currentQuestion]["question"];?></label>
<input type="hidden" name="currentQuestion" value="<?php echo $currentQuestion;?>">
<input type="text" name="guess" value="" placeholder="Answer...">
<input type="submit" value="Next Question">
</form>