-2

我的代码有问题。当我单击“提交”时,错误检查工作正常,但以前的值消失了。我的代码有什么问题?谢谢

<?php

$FnameErr = $LnameErr = $GenderErr = $TimeErr = $EduErr = $ApatErr = $QuoteErr = "";
if($_SERVER["REQUEST_METHOD"] == "POST")
{
    if(empty($_POST["Fname"]))
    {
        $FnameErr = "Enter First Name";
    }
    else
    {
        $Fname = $_POST["Fname"];
    }

    if(empty($_POST["Lname"]))
    {
        $LnameErr = "Enter Last Name";
    }
    else
    {
        $Lname = $_POST["Lname"];
    }

    if(empty($_POST["gender"]))
    {
        $GenderErr = "Enter Gender";
    }
    else
    {
        $gender = $_POST["gender"];
    }

    if(empty($_POST["living"]))
    {
        $ApatErr = "Enter living";
    }
    else
    {
        $living = $_POST["living"];
    }

    if(empty($_POST["quote"]))
    {
        $QuoteErr = "Enter Quote";
    }
    else
    {
        $quote = $_POST["quote"];
    }
    if(empty($_POST["education"]))
    {
        $EduErr = "Enter Education";
    }
    else
    {
        $education = $_POST["education"];
    }

    if(empty($_POST["TofD"]))
    {
        $TimeErr = "Enter Time";
    }
    else
    {
        $TofD = $_POST["TofD"];
    }
    if(isset($Fname) && isset($Lname) && isset($gender) && isset($living) && isset($quote) && isset($TofD))
    {

        echo "Hello, " . $Fname . " " . $Lname . ".<br />";
        echo "You are " . $gender . ", and you live in ";
        foreach($living as $f)
        {
            echo $f . "<br />";
        }

        echo "You're favorite time is " . $TofD . ", and you passed " . $education . "!<br />";
        echo "<i>" . $quote . "</i><br />";
    }
}
?>
4

2 回答 2

1

没有简单的方法可以做到这一点。您只需向表单添加值。

<input type=text name=FName value="<?php echo $FName; ?>">

为每个单独的表单输入做类似的事情

于 2013-02-27T23:55:17.580 回答
1

有两种快速的方法:

  1. 用于早期测试值的 JavaScript。

在将表单提交到 PHPscript 之前,您必须创建一个 JavaScript 函数来检查每个字段的内容,如果没有内容,则在页面上显示一些消息。

  1. 使用 PHP。

您必须将所有值添加到会话中,然后在重新加载表单时(如果其中一个字段中没有数据),将会话中的值添加到表单中。如果没有错误并且表单验证,您必须清除会话以删除值,因此下次加载表单时,不会添加任何值。

于 2013-02-27T23:55:23.657 回答