如何在表单发布失败后使用用户给出的值初始化表单


How to initialize a form with the values given by the user after it has failed to post?

>我有一个表单,如果它无法发布到服务器,我希望用户被带回数据仍然存在的表单。现在我已经设置了从表单到php文件的位置,该文件负责将内容提交到数据库,并在几秒钟后重定向回表单。但是,如果出现故障,我想确保最终用户不必重新输入所有信息。

如果表单数据无法发布,最好的办法是先将其写入会话变量。逻辑如下:

  1. 输入表单数据
  2. 使用表单值设置会话变量
  3. 将数据发布到数据库,如果成功则清除会话变量
  4. 如果发布失败,请重定向回表单,使用会话变量数据填充字段

当用户提交验证失败的表单时,只需使用您在 POST 或 GET 中获得的值重建表单的 HTML,然后将其发送回用户。

一个简单的方法是将表单发布到自己,并执行您需要执行的任何错误检查。如果它通过了验证,那么您可以执行其他任何需要执行的操作(将其插入数据库,发送电子邮件,转发到感谢页面等)。但是,如果失败,它将再次生成表单并填充字段,您可以使用 $_POST、$_GET 或 $_REQUEST 变量(取决于表单的方法)重新填充字段。

例如,如果您有一个类似于 <input type="text" name="fname" id="fname" /> 的名称字段,您可以将其修改为:

<input type="text" name="fname" id="fname" value="<?php echo $_POST['fname']?>" /> 

这将使用用户输入的任何数据填充该字段。选择菜单、复选框和单选按钮也可以使用之前输入的表单数据重新填充,代码稍微复杂一些。

相关文章: