За последние 24 часа нас посетили 22999 программистов и 1022 робота. Сейчас ищут 858 программистов ...

Возврат значений из другого файла

Тема в разделе "PHP для новичков", создана пользователем AcidBurn, 11 июн 2024.

  1. AcidBurn

    AcidBurn Новичок

    С нами с:
    11 июн 2024
    Сообщения:
    1
    Симпатии:
    0
    Добрый день. Делаю простую задачку на проверку чисел.
    Человек вводит число в форму input и нажимает подтвердить. Если число положительное, то выходит сообщение "Число положительное", если отрицательное, то соответственно сообщение "Число отрицательное".
    Данные из формы улетают в файл script.php по методу post. На стороне сервера происходит проверка и выдается сообщение. Необходимо сделать так, что бы произошла проверка числа, произошел редирект обратно на index.php, но при этом сообщение о том какое число, вышло на странице index.php. Т.е. проверка вся проходит в файле script.php, но результат проверки возвращается на index.php. Извиняюсь заранее, что не могу внятно объяснять.

    index.php

    PHP:
    1. <form action="script.php" method="post">
    2. <input type="text" name="chislo" placeholder="Введите число" class="Form-control"><br>
    3. <input type="submit" value="Проверить"  class="btn btn-success"><br><br>
    4. </form>
    5. <?php
    6. require "script.php";
    7. ?>
    script.php

    PHP:
    1. <?php
    2. $chislo = $_POST["chislo"];
    3. if ($chislo > 0) {
    4.     echo "Число положительное";
    5.     header('Location: /index.php');
    6.     exit;
    7. }
    8. else if ($chislo < 0) {
    9.     echo "Число отрицательное";
    10.     header('Location: /index.php');
    11.     exit;
    12. }
    13. ?>[/code]
     
  2. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    319
    Симпатии:
    64
    Адрес:
    Бавария, Германия
    Добрый день!
    1. Вариант index.php( index.html) и script.php
    index
    HTML:
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    2. </head>
    3. <form action="" method="post">
    4. <input type="text" name="chislo" placeholder="Введите число" class="Form-control" required><br>
    5. <input type="submit" value="Проверить"  class="btn btn-success"><br><br>
    6. </form>
    7. <div id="msg"></div>
    8. </body>
    9. let form = document.forms[0];
    10. let msgDiv = document.getElementById("msg");
    11. viewMsg = (msg) => {
    12.     msgDiv.innerHTML = msg;
    13. };
    14. sub = (event) => {
    15.     event.preventDefault();
    16.     ch = form.chislo.value;
    17.     if(isNaN(ch))
    18.     {
    19.         msg ="Ошибка! Ввели не чило";
    20.         viewMsg(msg);
    21.     }
    22.     else
    23.     {
    24.         fd = new FormData(form);
    25.            fetch("script.php", {
    26.                method: "POST",
    27.             body: fd
    28.           })
    29.         .then((response) => response.text())
    30.         .then((msg) => viewMsg(msg))
    31.     }
    32. };
    33. form.addEventListener("submit", sub);
    34. form.chislo.addEventListener("click", () => {viewMsg("")});
    35. </html>
    script.php
    PHP:
    1. ]<?php
    2. if(isset($_POST["chislo"]))
    3. {
    4.     $chislo = $_POST["chislo"];
    5.     $msg ="Число ";
    6.     $msg .= $chislo == 0?"нуль":($chislo > 0?"положительное":"отрицательное");
    7.     echo $msg;
    8.     exit;
    9. }
    2. Два скрипта в одном index.php
    PHP:
    1. <?php
    2. if(isset($_POST["chislo"]))
    3. {
    4.     $chislo = $_POST["chislo"];
    5.     $msg ="Число ";
    6.     $msg .= $chislo == 0?"нуль":($chislo > 0?"положительное":"отрицательное");
    7.     echo $msg;
    8.     exit;
    9. }
    10. ?>
    11. <html>
    12. <head>
    13. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    14. </head>
    15. <body>
    16. <form action="" method="post">
    17. <input type="text" name="chislo" placeholder="Введите число" class="Form-control" required><br>
    18. <input type="submit" value="Проверить"  class="btn btn-success"><br><br>
    19. </form>
    20. <div id="msg"></div>
    21. </body>
    22. <script>
    23. let form = document.forms[0];
    24. let msgDiv = document.getElementById("msg");
    25. viewMsg = (msg) => {
    26.     msgDiv.innerHTML = msg;
    27. };
    28. sub = (event) => {
    29.     event.preventDefault();
    30.     ch = form.chislo.value;
    31.     if(isNaN(ch))
    32.     {
    33.         msg ="Ошибка! Ввели не чило";
    34.         viewMsg(msg);
    35.     }
    36.     else
    37.     {
    38.         fd = new FormData(form);
    39.            fetch("?", {
    40.                method: "POST",
    41.             body: fd
    42.           })
    43.         .then((response) => response.text())
    44.         .then((msg) => viewMsg(msg))
    45.     }
    46. };
    47. form.addEventListener("submit", sub);
    48. form.chislo.addEventListener("click", () => {viewMsg("")});
    49. </script>
    50. </html>
    3. Только index.html без script.php (всё на JS)
    HTML:
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    2. <title>Untitled Document</title>
    3. </head>
    4. <form action="" method="post">
    5. <input type="text" name="chislo" placeholder="Введите число" class="Form-control" required><br>
    6. <input type="submit" value="Проверить"  class="btn btn-success"><br><br>
    7. </form>
    8. <div id="msg"></div>
    9. </body>
    10. let form = document.forms[0];
    11. let msgDiv = document.getElementById("msg");
    12. sub = (event) => {
    13.     event.preventDefault();
    14.     ch = form.chislo.value;
    15.     if(isNaN(ch))
    16.     {
    17.         msg ="Ошибка! Ввели не чило";
    18.     }
    19.     else
    20.     {
    21.         msg ="Число ";
    22.         msg += ch == 0?"нуль":ch > 0?"положительное":"отрицательное";
    23.     }
    24.     msgDiv.innerHTML = msg;
    25. };
    26. form.addEventListener("submit", sub);
    27. form.chislo.addEventListener("click", () => {msgDiv.innerHTML=""});
    28. </html>
    Удачи!