表格验证没有重置

时间:2010-04-12 23:34:04

标签: php validation forms

有没有办法检查表单发送到PHP页面的数据返回表单页面而不重置发送的数据并显示错误?

表格有20个字段,我需要在bd上查看其中一个字段。如果失败,用户可能会被重定向到填写表单的表单页面,并在字段上显示“错误”的错误消息。

我想要一种技术的建议,而不是使用PHP填充每个字段。

更新:

我不想使用任何涉及自己重新填充字段的解决方案!

我想要一个返回到填充了以前值的表单页面的解决方案。我尝试过像js.history.back或window.back()这样的东西。但表格返回空......

更新 :如果您正在寻找此类行为,现在有几种不同的技术可以实现这一目标。我目前正在使用jQuery(Ajax)。

3 个答案:

答案 0 :(得分:2)

在表单字段HTML中,将发布的值添加为字段值。

e.g:

<input type='text' name='email' value='<?php echo $_POST['email']; ?>' />

答案 1 :(得分:0)

是的,只需预先检查表单,确保在验证过程后运行表单HTML,如果验证失败,请重新加载包含字段中所有先前信息的表单。

它可能看起来像这样:

<?php if(isset($_POST['submit']){
    // validation code goes here with a trigger variable to
    // contain true or false depending on the outcome    
}

if($trigger==false){
    // load up your post data here    
} 

echo '
    <!-- form HTML goes here -->
';

答案 2 :(得分:0)

在表单验证页面

<?php
$form_values = $_POST;
//Your Form Validation
//$form_validated = TRUE/FALSE;  // FALSE if there were errors

if ($form_validated) {$form_values = array();}
$_SESSION['form_values'] = $form_values; /* if your form validation page and form page is not on the same page and can also use the same technique for error messages */
?>

在每个输入字段的“表单”页面上。

<?php
$form_values = $_SESSION['form_values']; //if your form validation page and form page is not on the same page
unset($_SESSION['form_values']);

echo '<input type="text" name="user_name" value="'.$form_values['user_name'].'" />';
?>

不同的输入类型需要以不同的方式处理$form_values数组,但这应该是你的开始。

如果您没有使用单独的表单验证页面,则可以直接从$_POST数组中获取表单值。