Php 在不丢失表单数据的情况下进行表单验证

Php 在不丢失表单数据的情况下进行表单验证,php,forms,submit,Php,Forms,Submit,我已经用PHP设置了一个带有验证的表单,效果很好。我面临的问题是,一旦单击submit按钮,就会进行验证。单击“提交”按钮时,表单值将被删除。如果存在验证错误,用户需要再次填充所有值,而不仅仅是错误值。是否有一种方法,一旦单击“提交”按钮,表单值就不会被删除 <tr> <td><label for="email_address">Email Address:</label> <input type="text" name="email_add

我已经用PHP设置了一个带有验证的表单,效果很好。我面临的问题是,一旦单击submit按钮,就会进行验证。单击“提交”按钮时,表单值将被删除。如果存在验证错误,用户需要再次填充所有值,而不仅仅是错误值。是否有一种方法,一旦单击“提交”按钮,表单值就不会被删除

<tr>
<td><label for="email_address">Email Address:</label> <input type="text" name="email_address" id="email_address" required /></td>
</tr>
<tr>
<td><label for="password">Password:</label> <input type="password" size="25" maxlength="25" name="password" id="password" required /></td>
</tr>
<tr>
<td><label for="password2">Re-enter Password:</label> <input type="password" size="25" maxlength="25" name="password2" id="password2" required /></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Submit" /></td>
</tr>
<tr>
<?php
if(isset($_POST['submit'])){
$email_address = $_POST['email_address'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email_address)) {
?>
<td><?php echo "Enter Valid Email Address"; ?></td>
<?php
}
elseif ($password2 !== $password) {
?>
<td><?php echo "Passwords don't match"; ?></td>
<?php
}

电邮地址:
密码:
重新输入密码:

您需要将用户条目回送到输入标记的值中。这类表单称为“粘性表单”(因为用户输入在提交表单后会粘在表单上)

<input type="text" name="email_address" value="<?php echo (isset($_POST['email_address']))?$_POST['email_address']:'';?>" id="email_address" required />
                             Added this ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

jquery验证程序是您的朋友@AbhikChakraborty我们不能跳过客户端验证,OP希望在表单提交后预先填充字段。我认为jQueryValidator并没有回答OP的问题。我知道它并没有回答,所以我并没有添加这个作为答案。这只是一条让生活变得简单的建议。