PHP:表单错误后保留填充的表单字段值

Ner*_*and 4 php forms

我已经在类似的网站上阅读了一些问题,但实际上并不能从中获得任何帮助。我有一个提交的表单,如果有错误,我会通知用户表单上方的错误,并在表单下方显示该表单以供他们更正。除了必须再次输入所有信息外,这一切都是好东西。我希望保留这些信息,他们只需要修复/重新输入错误所在的字段即可。

这是我的处理文件:

  <?php

 include_once("Header.php");

 if(!empty($_POST['formsubmit'])){require_once ("Form_Handle.php");}
 include("Form.php");

 include_once("Footer.php");


 ?>
Run Code Online (Sandbox Code Playgroud)

处理完form.php后,有什么要做的事情吗?

Gov*_*Rai 6

我认为所提供的答案有些含糊不清,而且从某种意义上说它们是错误的,因为它们告诉您value根据这些字段是否存在值来设置属性内字段的内容。

这就是为什么。将if语句逻辑放在value属性中时,它会将value属性设置为'YOURVALUE''""'。<-这就是问题。当字段为空时,该字段的值设置为空字符串$_POST["field_name"]。如果您进行了表单验证,并希望引发“空字段”错误,这将通过您的验证逻辑,这将是完全不正确的(您的表单字段将显示为空,但其中将包含一个空字符串)。

相反,只需回显变量而不进行任何检查。如果未设置,则不会发生任何事情。如果是这样,您将能够保留该值。例如,

<input type="text" name="email" value="<?php echo $_POST["email"]; ?>" >
Run Code Online (Sandbox Code Playgroud)

这是另一个代码示例,其中我放弃了上述所有情况,仅value在变量不为空时才回显属性。

<h2>PHP Form Validation Example</h2>
<p><span class="error">* required field.</span></p>

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

   Name: <input type="text" name="name" <?php if (!empty($_POST['name'])) {echo "value=\"" . $_POST["name"] . "\"";} ?> >
   <span class="error">* <?php echo $nameErr;?></span>
   <br><br>

   E-mail: <input type="text" name="email" <?php if (!empty($_POST['email'])) {echo "value=\"" . $_POST["email"] . "\"";} ?> >
   <span class="error">* <?php echo $emailErr;?></span>
   <br><br>

   Website: <input type="text" name="website" <?php if (!empty($_POST['website'])) {echo "value=\"" . $_POST["website"] . "\"";} ?> >
   <span class="error"><?php echo $websiteErr;?></span>
   <br><br>

   Comment: <textarea name="comment" <?php if (!empty($_POST['comment'])) {echo "value=\"" . $_POST["comment"] . "\"";} ?> rows="5" cols="40"></textarea>
   <br><br>

   Gender:
   <input type="radio" name="gender" value="female" <?php if ($_POST['gender']=="female") {echo "checked";} ?> >Female
   <input type="radio" name="gender" value="male" <?php if ($_POST['gender']=="male") {echo "checked";} ?> >Male
   <span class="error">* <?php echo $genderErr;?></span>
   <br><br>

   <input type="submit" name="submit" value="Submit"> 

</form>
Run Code Online (Sandbox Code Playgroud)

关于用户提出的实际问题,您需要在form.php文件中添加类似的代码。