Как сделать динамичную отправку запросов в php?
Я создаю сайт где генерируются: два числа и операнд. Проблема в том что при нажатии кнопки, введенный ответ сравнивается не с текущим правильным ответом а уже следующим. Как это можно исправить?
<?php
$data = $_POST;
$operands = array("+", "-", "*", ":");
$a = (random_int(2, 9));
$b = (random_int(2, 9));
$c = (random_int(0, 3));
$answer;
if ($c == 0) {
$answer = $a + $b;
} else if ($c == 1) {
$answer = $a - $b;
} else if ($c == 2) {
$answer = $a * $b;
} else {
$answer = $a / $b;
}
$operand = $operands[$c];
$question = "$a $operand $b";
if ($data['answer'] == $answer) {
$success = "Верно";
} else {
$error = "Неверно";
}
?>
<form class = "form-answer" action="example.php" method="POST">
<?php
if (isset($success)) {
echo $success;
} else {
echo $error;
}
?>
<h1 align="center"><?php echo $question; ?></h1>
<input type="text" class="form-control" name="answer" placeholder="Ваш ответ" required><br>
<button type="submit" >Ответить</button><br>
<?php echo "$answer ";
echo $data['answer']; ?>
</form>
Ответы (1 шт):
Вы сначала делаете все подсчеты, ждете пока введут данные в форму, далее нажатие на submit и скрипт обновляет страницу, записывает данные из формы в массив $_POST, происходят уже следующие вычисления и сравнения с вашими предыдущими данными из формы.
Решение: записывать данные ваших расчетов в куки, сессию, localstorage под одним именем и каждый раз перетирать их, повесить if($_POST['submit']) {в теле брать данные из куки или тп. и сверять с $_POST-данными}.
Надеюсь понятно объяснил.