我正在使用一个使用流程页面来验证然后处理所有信息的表单。如果出现问题或丢失,消息会告诉用户返回页面并修复它。但是,当他们这样做时,他们输入的所有其他信息都不会显示在字段中。我怎样才能做到这一点,所以无论他们放入什么都会显示出来。
问问题
1006 次
3 回答
3
一个简单的解决方案是在发布时将所有 POST 数据存储在 SESSION 中。
if($_POST){ // if we have any POSTed variables...
$_SESSION['postdata'] = $_POST; // set a browser session with all of the values
}
然后,在您的表单页面上,检查 postdata 是否存在,如果存在,请填写输入值。
if($_SESSION['postdata']){ // if postdata exists
$p = $_SESSION['postdata']; // retrieve values in a new variable
unset($_SESSION['postdata']); // unset session, because you don't want this post data to travel all around your website
/* for each input or whatever you got there... */
echo '<input name="your-key-here" type="text" value="'. $p['your-key-here'] .'" />';
}
类似的东西!玩得开心!
于 2011-01-27T06:39:20.440 回答
2
最好的方法是在同一页面上进行验证,只有在验证成功时才重定向到另一个页面:
<?php
if (!empty($_POST['foo'])) {
// validate
if (/* valid */) {
// save data somewhere
header('Location: nextpage.php');
exit();
}
}
?>
<form action="samepage.php">
<input name="foo" type="text" value="<?php if (!empty($_POST['foo'])) echo htmlentities($_POST['foo']); ?>">
<?php if (/* foo was invalid */) : ?>
<p class="error">Please fill in Foo!</p>
<?php endif; ?>
</form>
或者:使用会话。
于 2011-01-27T06:23:33.650 回答
1
使用 javascript 或 ajax 在同一页面中进行验证(如果您需要检查服务器端)
那么你不会丢失任何数据
您可以在网上找到许多示例(使用 ajax 查找表单验证)
喜欢这篇文章:http: //jqueryfordesigners.com/demo/ajax-validation.php
于 2011-01-27T06:21:22.750 回答