如何在同一页面上显示表单错误并保留用户输入的数据?

时间:2018-05-31 15:57:06

标签: php html html5

我有一个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 :(得分:1)

如果您要发布到同一页面,则可以在同一页面上回显错误。保留发布的数据没有问题。

在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> 

如果要发布到其他网址,则必须重定向回表单页面或包含表单页面,并传递$ errors和$ _POST数据。

答案 1 :(得分:0)

在同一个文件中执行所有操作:

<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.";
    }
}

答案 2 :(得分:0)

如果您尝试在同一表单文件中进行验证,请将其称为“form.html”,先将其重命名为“form.php”。然后在所有html代码上方添加<?php ?>标记,并在那里编写代码。

要使其正常工作,您需要在表格

中留空动作属性
   <?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>

我希望这可以回答您关于将代码放在同一页面中的问题,但如果您要执行的操作是检查字段是否为空,我建议您使用html中的“required”属性表格的输入。