javascript-JS或者PHP端如何防止重复提交?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-JS或者PHP端如何防止重复提交?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1188字,纯文字阅读大概需要2分钟。
内容图文
![javascript-JS或者PHP端如何防止重复提交?](/upload/InfoBanner/zyjiaocheng/243/c9ee7fd674d7424f8c46ba74b7b96060.jpg)
回复内容:
如果重复提交的话会在数据表里累加数据,有解决办法吗?
Post/Redirect/Get
简称PRG,是一种用来防止表单重复提交数据的一种Web设计模式.
服务器端:
1.增加表单令牌,验证通过令牌失效。
2.如果有字段必须唯一,数据库设置唯一字段。
3.session存储最后提交的部分数据,判断是否一致。
4.成功后跳转新页面。
JS端:
1.提交后,取消提交事件或设置为不可点击。
2.成功后,重新加载页面。
数据库里把字段设为UNIQUE的,然后PHP插入语句遇到重复的会执行错误,你捕捉到错误就知道是插入失败了。
Ajax 提交后,设置 submit 为不可点击
数据库设置 唯一索引,防止重复数据
方法如下,详情看注释
var tag = 0;
$('.xxx').on('submit', function() {
// 只有在tag = 0 的时候才能执行提交事件
if(tag == 0) {
// 提交事件执行的第一时间,将tag值改变,这样当再次触发submit时,就不会执行任何行为了
tag = 1;
// do something
// 还可以在某些满足条件的情况下将tag值还原成0,让事件可以再次执行
}
})
单击提交时间,返回成功后,将表单中的内容清空。这样避免了重复提交
参考laravel csrf-token https://laravel.com/docs/5.1/routing#csrf-x-csrf-token
前端的话
貌似是bootstrap或者jquery有一个button方法
比如可以在button增加一个data属性
js:
$('#submit').button('submit').on()
这样就可以自动disable掉button 并且显示data-submit的文字
内容总结
以上是互联网集市为您收集整理的javascript-JS或者PHP端如何防止重复提交?全部内容,希望文章能够帮你解决javascript-JS或者PHP端如何防止重复提交?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。