php js 提交阻止,【php】JS或者PHP端如何防止重复提交?

如果重复提交的话会在数据表里累加数据,有解决办法吗?

回答

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,让事件可以再次执行

}

})

单击提交时间,返回成功后,将表单中的内容清空。这样避免了重复提交

前端的话

貌似是bootstrap或者jquery有一个button方法

比如可以在button增加一个data属性

提交

js:

$(‘#submit’).button(‘submit’).on()

这样就可以自动disable掉button 并且显示data-submit的文字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值