让你的表格“粘”

时间:2013-02-27 23:47:54

标签: php

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

<?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 />";
    }
}
?>

2 个答案:

答案 0 :(得分:1)

没有简单的方法可以做到这一点;你只需要在表单中添加值。

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

为每个单独的表单输入执行类似的操作

答案 1 :(得分:1)

有两种快速的方法:

  1. JavaScript早期测试值。
  2. 您需要创建一个JavaScript函数,在将表单提交到PHPscript之前检查每个字段的内容,如果没有内容,则在页面上显示一些消息。

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