【问题标题】:Keeping PHP form text visible after I hit submit在我点击提交后保持 PHP 表单文本可见
【发布时间】:2016-02-08 07:24:33
【问题描述】:

我正在设置一个表单,用户必须在几个字段中输入文本才能加载到数据库中,然后点击提交。在用户点击提交以输入所有必要的数据后,表单将被验证。我想在 subnit 之后保持文本字段中的数据可见,但到目前为止我还没有能够做到这一点。我尝试使用 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>

【问题讨论】:

标签: php forms


【解决方案1】:

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

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

【讨论】:

  • $_POST 在这种情况下会不会更合适?
  • @user1122069 我添加了您建议的代码。代码不再显示在文本字段中,但输入的数据仍会在提交时删除。
  • 它需要一个回声。再试一次。 @allejo
【解决方案2】:

只需在 input 元素的 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”语句中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-30
  • 2013-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多