Как показать ошибки формы на той же странице и сохранить данные, введенные пользователем? - PullRequest
0 голосов
/ 31 мая 2018

У меня есть форма с action="file.php", у этого PHP-файла есть щеки и выходные данные, я хочу, чтобы эти выходные данные были на одной странице формы.

Форма существует в HTML-файле:

 <form class="" method="post" action="file.php">
    <!-- Some Form Fields -->
</form>

Файл file.php содержит несколько проверок и выводов, таких как:

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = $_POST['name'];
    if ( empty($name){
        echo "Name can't be empty.";
    }
}

Как показать эти выходные данные на той же странице рядом с формой?

Ответы [ 3 ]

0 голосов
/ 31 мая 2018

Делайте все в одном файле .php:

<form class="" method="post" action="file.php">
    <!-- Some Form Fields -->
</form>
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = $_POST['name'];
    if ( empty($name){
        echo "Name can't be empty.";
    }
}
0 голосов
/ 31 мая 2018

Если вы пытаетесь получить эту проверку в том же файле формы, назовем его «form.html», сначала переименуйте его в «form.php».Затем добавьте теги <?php ?> над всем HTML-кодом и напишите свой код там.

Чтобы это работало, вам нужно оставить пустой атрибут действия в форме

   <?php
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        $name = $_POST['name'];
        if ( empty($name){
            echo "Name can't be empty.";
        }
    }
    ?>
    <!-- Some HTML Code-->
    <form class="" method="post" action="">
        <!-- Some Form Fields -->
    </form>

Я надеюсь, что это ответит на ваш вопрос о наличии кода на той же странице, но если вы пытаетесь проверить, является ли поле пустым, я рекомендую использовать атрибут required во входных данных html-формы.

0 голосов
/ 31 мая 2018

Если вы публикуете на той же странице, вы можете повторить ошибки на той же странице и сохранить опубликованные данные без проблем с чем-то вроде этого.

в php

   $errors = []
   if (empty($name){
        $errors['name'] = "Name can't be empty.";
    }

... и в форме

<php if (isset($errors['name'])) echo $errors['name']; ?>

<input name='name' value="<?php if (isset($_POST['name'])) echo $_POST['name']; ?>"></input> 

Если вы публикуете другой URL-адрес, вам придется перенаправить обратно на страницу формы или включить страницу формы, а также передать ошибки $ и $ _POSTданные.

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