2015-11-07 24 views
0

我设置了一个表单,用户必须在几个字段中输入文本才能加载到数据库中,然后点击提交。该表格在用户点击提交后进行验证,以便输入所有必要的数据。尽管在subnit之后我想保持文本字段中的数据可见,但到目前为止我还没有能够实现这一点。我尝试使用value =“”来保留数据,但代码显示在文本字段中而不是空白。我点击提交后保持PHP表单文本可见

<!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> 
+0

对于不输入其他类型的字段:HTTP://计算器。 com/questions/5514897/keep-form-values-after-submit-php?rq = 1 – allejo

回答

0

在文本字段中使用value =“”,而不是表单。

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

在这种情况下'$ _POST'不会更合适吗? – allejo

+0

@ user1122069我添加了您建议的代码。代码不再显示在文本字段中,但输入的数据在提交时仍然会被删除。 – Tony

+0

它需要一个回声。再试一次。 @allejo – user1122069

0

只是在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> 
+0

问题是代码显示在“值”语句中。 – Tony