我一直在表单数据清除的地步。用户提交表单后,数据将添加到数据库中。它很好,直到这里。但是,如果用户刷新之前输入的页面,数据将重新输入到数据库中。我正在使用post方法发送数据。我没有使用AJAX。提交数据后,整个页面将重新加载。请帮我解决一下这个。如果在提交后有任何方式清除表单数据,那么在刷新页面之后,没有数据被添加到数据库中来回答这个问题。在PHP提交混帐后清除表单数据
回答
在我看来,表单的发布行为就是表单页面本身。你必须添加一个检查表单是否已经提交,这样你的数据不会再保存在数据库中。或者您可以将发布操作更改为不同的页面,以便在数据库中插入并将用户重定向到初始页面表单。
大多数人使用url将表单发布到,然后重定向回原始表单。这可以是相同的网址。
插入数据后,做了重新定位:
header('Location:'.$_SERVER['PHP_SELF']);
重定向后,爽口不会造成数据再次插入。
要向用户显示消息,我只需通过$_GET
设置一个标志。例如:
// Redirect and set $_GET variable
header('Location:'.$_SERVER['PHP_SELF'].'?showmsg=true');
以显示隐藏的div你可以做一个函数:
function show_confirmation()
{
return isset($_GET['showmsg']) && $_GET['showmsg'] == 'true';
}
而且使用这样的功能:
<div style="display:<?php echo show_confirmation() ? 'block' : 'none'; ?>">
<!-- Message for user -->
</div>
谢谢他们的作品。但还有另一个问题。提交表单后,我收到了要显示的消息。该消息显示在用户提交表单之前隐藏的div元素内。你能帮忙吗? – 2010-09-30 04:16:58
Sanket,我更新了我的答案,并提供了向用户显示隐藏的div的建议。 – Mischa 2010-09-30 04:43:25
谢谢队长。它的工作现在很好。再次感谢你。 – 2010-09-30 04:59:24
尝试使用会话。设置会话变量以记录用户是否已经提交表单。
把这个在你的代码的开头(这需要在每一页上):
在session_start();
然后当他们提交表单,设置会话变量:
$ _SESSION [ 'form_submitted'] = TRUE;
下面是一个教程链接上的会话:Tutorial
如果使用POST
代替GET
作为动作属性表单上,然后刷新结果页面将不会重新提交表单(某些浏览器可以提供这样做的选择,但他们肯定不应该默认这样做)。
但是,您不能排除表单被多次发布的可能性 - 发生这种情况的几种常见原因;例如,如果页面加载缓慢,则用户可以在按钮上多次点击。
做的最好的事情是有形式的隐藏唯一ID字段,所以当你接收已多次提交表单,你可以告诉你的程序可以忽略它。
生成表单html时生成一个唯一的键,并在表单中为该键设置一个隐藏字段。将密钥与数据一起保存,并且如果密钥已存在于数据库中,则不保存数据。
如果您选择重定向方法,请不要忘记在重定向之后添加一个die以指示webserver停止脚本执行。
if(saveFormInformation())
{
header('Location: http://www.example.com/'); //this line instructs browser
//to go to example. com
//but the webserver will keep executing the rest of the script
//unless you instruct it to stop
die; //this line instructs web server to stop execution of the script
}
- 1. 提交后清除Redux表单字段
- 2. Ember - 提交后清除表单
- 3. 提交数据后如何清除表单控件?
- 4. 如何清除jquery提交的php表单数据?
- 5. 清除数据表单提交按钮php
- 6. 清理混帐提交历史
- 7. 在提交表单后用ajax清除所有表单元素
- 8. 表单提交后清除表单文件
- 9. 混帐删除不需要提交
- 10. 如何在使用AngularJS提交并显示消息后清除表单数据?
- 11. 如何在提交后在伏特视图中清除表单?
- 12. 混帐后失踪提交重订
- 13. 如何在Laravel PHP中提交表单后删除表单?
- 14. 表单提交后清除字段并提供消息
- 15. 提交后清除Rails远程表格
- 16. 提交后清除Rails表格
- 17. 提交后清除链接表格
- 18. 使用jQuery提交后清除表格
- 19. 无法在角度提交后清除表单域
- 20. 如何在ajax提交后清除表单?
- 21. 在Google Apps脚本中提交后刷新或清除表单?
- 22. 在wordpress中提交后清除表单域
- 23. 如何在提交后清除ajax表单?
- 24. 在JavaScript中提交后的清除表单
- 25. 如何在提交值后清除表单?
- 26. 提交后清除Redux表单 - 多个单选按钮
- 27. MSSQL数据库:日志没有清除后提交交易
- 28. 表单在提交后不检查模型状态或清除表单
- 29. 在ajax提交后清除text_field
- 30. 如何在提交后清除字段?
也许使用布尔提交前检查,然后提交当它设置为true? – Emerion 2010-09-29 13:19:55