Решение математического вопроса в PHP / HTML без Javascript - PullRequest
0 голосов
/ 26 октября 2019

Я новичок в программировании (в настоящее время учусь на курсе), и наша задача на выходных состоит в том, чтобы создать веб-сайт (действительно базовый), где мы должны решить добавление двух случайных чисел. Я смог создать эти случайные числа, но с другой стороны, создать нечто вроде поля, которое пользователь (в данном случае я) должен заполнить и «отправить»;и тогда сайт должен показать мой собственный ответ и правильный. Проблема, с которой я столкнулся в дополнение к этому, заключается в том, что при создании функции отправки веб-сайт обновляется, и эти случайные числа меняются каждый раз.

Мой код выглядит следующим образом (извините за использование немецких терминов):

<?php
$zufallszahl = rand(1,100) . "+";
$zufallszahl1= rand(1,100);
$solution= bcadd($zufallszahl,$zufallszahl1);
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Homework Taschenrechner</title>
</head>
<body>
    <h1>Additionen</h1>
    <hr>
    <h4>Addiere die folgenden Zahlen:</h4>
    <p> <?php echo $zufallszahl; echo $zufallszahl1 ?> <p>
    <form method="post">    
        <input type="number" name="Usereingabe" min="0" placeholder="Deine Antwort">
    </form>
</body>
</html>

Я был бы очень признателен за "простое" решение, я погуглил этот вопрос уже час, но большинство решений сейчас слишком сложны для меня, и я в итогене понимая, о чем код. Итак, просто подытожив, я хотел бы знать, как создать поле отправки, которое не обновляет веб-сайт, чтобы случайные числа оставались, и поле, которое «проверяет» ответ и говорит, что оно истинно / ложно.

Ответы [ 3 ]

2 голосов
/ 26 октября 2019

Хотя, если бы вам разрешили использовать JS, все было бы намного проще. Однако, поскольку вы хотели это только на PHP, приведенный ниже код должен работать. Не стесняйтесь изменять его в соответствии с вашими потребностями

<?php
if(!isset($_POST['zufallszahl']) && !isset($_POST['zufallszahl1'])) {
    $zufallszahl = rand(1,100);
    $zufallszahl1= rand(1,100);
    // $solution= bcadd($zufallszahl,$zufallszahl1);
} else {
    $zufallszahl = $_POST['zufallszahl'];
    $zufallszahl1 = $_POST['zufallszahl1'];
    $solution = bcadd($zufallszahl,$zufallszahl1);
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Homework Taschenrechner</title>
</head>
<body>
    <h1>Additionen</h1>
    <hr>
    <h4>Addiere die folgenden Zahlen:</h4>
    <p> <?php echo $zufallszahl . " + "; echo $zufallszahl1 ?> <p>
    <form method="post">    
        <input type="number" name="zufallszahl" value="<?php echo $zufallszahl; ?>" readonly />
        <input type="number" name="zufallszahl1" value="<?php echo $zufallszahl1; ?>" readonly />
        <input type="number" name="Usereingabe" min="0" placeholder="Deine Antwort" value="<?php echo $_POST['Usereingabe'] ?? ''; ?>">

        <button>Check Answer  </button>

       <?php if(isset($_POST['Usereingabe'])){ ?>
           <?php if($_POST['Usereingabe'] == $solution)
                    echo "Correct Answer";
             else {
                   echo "Wrong Answer. Correct answer is $solution";
            } ?>
       <?php } ?>

    </form>
</body>
</html>

ПРИМЕЧАНИЕ Если вы используете версию ниже PHP 7, просто используйте <?php echo isset($_POST['Usereingabe'])? $_POST['Usereingabe'] : ''; ?> вместо <?php echo $userSolution ?? ''; ?>

0 голосов
/ 26 октября 2019

Таким образом, вы можете хранить их в переменной _SESSION, а когда они отправляют ответ, вы можете сравнить переменную _POST с _SESSION one

<?php
if(isset($_POST['Usereingabe']))
{
   if($_POST['Usereingabe'] == $_SESSION['sol']){
      $check = "correct answer";
     }
   else
    { $check = "wrong answer"; }
}
else {
$zufallszahl = rand(1,100) . "+";
$zufallszahl1= rand(1,100);
$solution= bcadd($zufallszahl,$zufallszahl1);
$_SESSION['zufallszahl1']=$zufallszahl1;
$_SESSION['zufallszahl']=$zufallszahl;
$_SESSION['sol']=$solution;
}
// do anything else u want
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Homework Taschenrechner</title>
</head>
<body>
    <h1>Additionen</h1>
    <hr>
    <h4>Addiere die folgenden Zahlen:</h4>
    <?php if(isset($check)) { echo $check; } ?>
    <p> <?php echo $_SESSION['zufallszahl']; echo $_SESSION['zufallszahl1']; ?> <p>
    <form method="post" action="*your file.php*">    
        <input type="number" name="Usereingabe" min="0" placeholder="Deine Antwort">
        <button type="submit">Submit!</button>
    </form>
</body>
</html>
0 голосов
/ 26 октября 2019

Вы можете использовать два дополнительных входных тега в форме type="hidden", которые содержат случайные числа в своих полях значений, и проверить, не являются ли они пустыми. Если да, генерируйте новые, в противном случае сохраняйте старые.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...