在我点击提交后保持PHP表单文本可见


Keeping PHP form text visible after I hit submit

我正在设置一个表单,用户必须在几个字段中输入文本才能加载到数据库中,然后点击提交。在用户点击提交以输入所有必要的数据后,将对表单进行验证。我想在子节点之后保持文本字段中的数据可见,但到目前为止我还没能做到这一点。我尝试使用value="来保留数据,但代码显示在文本字段中,而不是空白。

<!DOCTYPE HTML>
  <html lang = "en">
    <head>
    <link rel="stylesheet" type="text/css" href="mystylesheet.css">
    <title>Tech Order Department.html</title>
    <meta charset = "UTF-8" />
    </head>
    <body>
    <h2>New Projects</h2>
     <?php
      if(isset($_POST['formSubmit']) && $_POST['formSubmit'] == "Submit") {
        $varProject = $_POST['Project'];
        $varClient = $_POST['Client'];
        $varLastName = $_POST['LastName'];
        $varDateReceived = $_POST['DateReceived'];
    }
    ?>
    <form action="Form.php" method="post" value="<?php echo htmlspecialchars    ($_GET['lastname']); ?>" >
        Project:<br>
        <input type="text" name="Project"><br>
        Client:<br>
        <input type="text" name="Client">
        <br>
        Last Name:<br>
        <input type="text" name="LastName">
        <br>
        Date Received:<br>
        <input type="text" name="DateReceived">
        <br><br>
        <input type="submit" name="formSubmit" value="Submit">
    </form>   
    <?php
     if(isset($_POST['formSubmit']) && $_POST['formSubmit'] == "Submit") {
        $errorMessage = "";
        if (empty($_POST['Project'])) {
            $errorMessage .= "<li>You forgot to enter a project name!</li>";
        }
        if (empty($_POST['Client'])) {
            $errorMessage .= "<li>You forgot to enter a client name!</li>";
        }
        if (empty($_POST['LastName'])) {
            $errorMessage .= "<li>You forgot to enter the tech writer name!    </li>";
        }
        if (empty($_POST['DateReceived'])) {
            $errorMessage .= "<li>You forgot to enter the date received!    </li>";
        }
        $varProject = $_POST['Project'];
        $varclient = $_POST['Client'];
        $varLastName = $_POST['LastName'];
        $varDateReceived = $_POST['DateReceived'];
        if (!empty($errorMessage)) {
            echo("<p>There was an error with your form:</p>'n");
            echo("<ul>" . $errorMessage . "</ul>'n");
        }
    }
    ?>
</body>
</html>

只需在输入元素的value属性中回显提交的值。

您的代码如下所示:

$varProject = "";
$varClient = "";
$varLastName = "";
$varDateReceived = "";
if(isset($_POST['formSubmit']) && $_POST['formSubmit'] == "Submit") {
    $varProject = $_POST['Project'];
    $varClient = $_POST['Client'];
    $varLastName = $_POST['LastName'];
    $varDateReceived = $_POST['DateReceived'];
}

在HTML中,它应该是:

<input type="text" name="Project" value="<?php echo $varProject?>"><br>

在文本字段上使用value=",而不是表单。

<input value="<?php echo (isset($_REQUEST['Project']) ? $_REQUEST['Project']:''); ?>" name="Project" type="text" />