此时刷新B页,浏览器会出现提示:
“...请单击重试再次发送信息...”
如何让用户刷新B页但又不要重复提交数据?!
如果是提交修改信息也就罢了,但很多时候都是新增记录,
这时刷新就会重复的新增记录
右键被屏蔽了,但F5键屏蔽不了,return false对F5键不起作用
(绝非A页面过期问题,就算我让A页面过期了,B页面刷新,post的数据照提交不误,烦)
23 个解决方案
#1
从A提交到B的是后先查询数据库,如果没有相同的记录则插入数据,否则提示错误,这样,永远不会重复提交了
#2
(1)处理完后马上跳转地址
(2)限制一同一人相邻两帖时间间隔
(2)限制一同一人相邻两帖时间间隔
#3
用SESSION了,在你的表单页里加入SESSION("saved")=0然后在保存页里先看一下是不为0是则保存并执行下一句session("saved")=1
#4
第一次提交后设一个session(),然后再次提交后,可通过session()判断防止信息再次写入数据库里
#5
对,强烈同意楼上。
#6
用session 判断把
#7
有没有其它方法?!
不可能设置Session吧,一个文员要新增N个页面,难道我跟她开N个Session?
那一个系统有N个文员在用怎么办?!N×N?!
不可能设置Session吧,一个文员要新增N个页面,难道我跟她开N个Session?
那一个系统有N个文员在用怎么办?!N×N?!
#8
(1)处理完后马上跳转地址
有个中间添加成功页面(2秒钟)
有个中间添加成功页面(2秒钟)
#9
"处理完后马上跳转地址",这是最简单有效的方法,csdn也是这么做的。
#10
在数据处理页面最后加上
<script language="javascript">
window.location.href="ok.asp";
</script>
<script language="javascript">
window.location.href="ok.asp";
</script>
#11
在数据处理页面最后加上
<script language="javascript">
window.location.href="ok.asp";
</script>
<script language="javascript">
window.location.href="ok.asp";
</script>
#12
在数据处理页面最后加上
<script language="javascript">
window.location.href="ok.asp";
</script>
<script language="javascript">
window.location.href="ok.asp";
</script>
#13
完了完了,
我是当页提交到当页,还有一些查询参数要传递,
要跳转的话....我不又要折腾那些querystring和input?!
:)
我是当页提交到当页,还有一些查询参数要传递,
要跳转的话....我不又要折腾那些querystring和input?!
:)
#14
数据处理单独做一个页.
填写数据的页面加上清除缓存的语句.
<%
Response.Buffer =True
Response.ExpiresAbsolute =Now() - 1
Response.Expires=0
Response.CacheControl="no-cache"
%>
清除缓存..
填写数据的页面加上清除缓存的语句.
<%
Response.Buffer =True
Response.ExpiresAbsolute =Now() - 1
Response.Expires=0
Response.CacheControl="no-cache"
%>
清除缓存..
#15
当前页也没有关系呀
这样做:
<script language="javascript">
top.location.href="文件名"; '还是跳到本文件
</script>
这样做:
<script language="javascript">
top.location.href="文件名"; '还是跳到本文件
</script>
#16
还是用session保险点
#17
当页提交到当页
那就好办了~~~~~
那就好办了~~~~~
#18
CSDN的提交与处理是在框架页内(IFrame)进行的,处理完后只要在框架页内用脚本刷新top frame,这样就不用处理查询参数了(查询结果在主Frame中显示)
#19
to : angelheavens(龙辉)
拜托,我是说要折腾我那些querystring和input,有些参数必须传递的啊~~
而且我基本上每个页面都要传参的啊
拜托,我是说要折腾我那些querystring和input,有些参数必须传递的啊~~
而且我基本上每个页面都要传参的啊
#20
哈哈,到底还是csdn的NB,我以后试试
#21
不可能设置Session吧,一个文员要新增N个页面,难道我跟她开N个Session?
那一个系统有N个文员在用怎么办?!N×N?!
什么逻辑呀?
设计思路:
'利用动态session("flag")来判断是否添加数据
'如果刷新页面,session("flag")=request("flag")
<% if request("submit")="提交" and request("flag")<>"" and session("flag")<>request("flag") then %>
……
'提交后处理程序
……
'处理后,设置
session("flag")=Request("flag")
<% end if %>
#填写表单
<%
Dim num
Randomize
num = Int((1000-1+1)*Rnd+1) '动态获取flag的值
%>
<form>
……
<input type=hidden name=flag value="<%=num%>" >
……
<input type=submit name=submit value="提交" >
</form>
那一个系统有N个文员在用怎么办?!N×N?!
什么逻辑呀?
设计思路:
'利用动态session("flag")来判断是否添加数据
'如果刷新页面,session("flag")=request("flag")
<% if request("submit")="提交" and request("flag")<>"" and session("flag")<>request("flag") then %>
……
'提交后处理程序
……
'处理后,设置
session("flag")=Request("flag")
<% end if %>
#填写表单
<%
Dim num
Randomize
num = Int((1000-1+1)*Rnd+1) '动态获取flag的值
%>
<form>
……
<input type=hidden name=flag value="<%=num%>" >
……
<input type=submit name=submit value="提交" >
</form>
#22
可以把A页B页的内容都放在一页里,或用session()来判断一下。
#23
我也是用js跳转;不过反应有点慢!
#1
从A提交到B的是后先查询数据库,如果没有相同的记录则插入数据,否则提示错误,这样,永远不会重复提交了
#2
(1)处理完后马上跳转地址
(2)限制一同一人相邻两帖时间间隔
(2)限制一同一人相邻两帖时间间隔
#3
用SESSION了,在你的表单页里加入SESSION("saved")=0然后在保存页里先看一下是不为0是则保存并执行下一句session("saved")=1
#4
第一次提交后设一个session(),然后再次提交后,可通过session()判断防止信息再次写入数据库里
#5
对,强烈同意楼上。
#6
用session 判断把
#7
有没有其它方法?!
不可能设置Session吧,一个文员要新增N个页面,难道我跟她开N个Session?
那一个系统有N个文员在用怎么办?!N×N?!
不可能设置Session吧,一个文员要新增N个页面,难道我跟她开N个Session?
那一个系统有N个文员在用怎么办?!N×N?!
#8
(1)处理完后马上跳转地址
有个中间添加成功页面(2秒钟)
有个中间添加成功页面(2秒钟)
#9
"处理完后马上跳转地址",这是最简单有效的方法,csdn也是这么做的。
#10
在数据处理页面最后加上
<script language="javascript">
window.location.href="ok.asp";
</script>
<script language="javascript">
window.location.href="ok.asp";
</script>
#11
在数据处理页面最后加上
<script language="javascript">
window.location.href="ok.asp";
</script>
<script language="javascript">
window.location.href="ok.asp";
</script>
#12
在数据处理页面最后加上
<script language="javascript">
window.location.href="ok.asp";
</script>
<script language="javascript">
window.location.href="ok.asp";
</script>
#13
完了完了,
我是当页提交到当页,还有一些查询参数要传递,
要跳转的话....我不又要折腾那些querystring和input?!
:)
我是当页提交到当页,还有一些查询参数要传递,
要跳转的话....我不又要折腾那些querystring和input?!
:)
#14
数据处理单独做一个页.
填写数据的页面加上清除缓存的语句.
<%
Response.Buffer =True
Response.ExpiresAbsolute =Now() - 1
Response.Expires=0
Response.CacheControl="no-cache"
%>
清除缓存..
填写数据的页面加上清除缓存的语句.
<%
Response.Buffer =True
Response.ExpiresAbsolute =Now() - 1
Response.Expires=0
Response.CacheControl="no-cache"
%>
清除缓存..
#15
当前页也没有关系呀
这样做:
<script language="javascript">
top.location.href="文件名"; '还是跳到本文件
</script>
这样做:
<script language="javascript">
top.location.href="文件名"; '还是跳到本文件
</script>
#16
还是用session保险点
#17
当页提交到当页
那就好办了~~~~~
那就好办了~~~~~
#18
CSDN的提交与处理是在框架页内(IFrame)进行的,处理完后只要在框架页内用脚本刷新top frame,这样就不用处理查询参数了(查询结果在主Frame中显示)
#19
to : angelheavens(龙辉)
拜托,我是说要折腾我那些querystring和input,有些参数必须传递的啊~~
而且我基本上每个页面都要传参的啊
拜托,我是说要折腾我那些querystring和input,有些参数必须传递的啊~~
而且我基本上每个页面都要传参的啊
#20
哈哈,到底还是csdn的NB,我以后试试
#21
不可能设置Session吧,一个文员要新增N个页面,难道我跟她开N个Session?
那一个系统有N个文员在用怎么办?!N×N?!
什么逻辑呀?
设计思路:
'利用动态session("flag")来判断是否添加数据
'如果刷新页面,session("flag")=request("flag")
<% if request("submit")="提交" and request("flag")<>"" and session("flag")<>request("flag") then %>
……
'提交后处理程序
……
'处理后,设置
session("flag")=Request("flag")
<% end if %>
#填写表单
<%
Dim num
Randomize
num = Int((1000-1+1)*Rnd+1) '动态获取flag的值
%>
<form>
……
<input type=hidden name=flag value="<%=num%>" >
……
<input type=submit name=submit value="提交" >
</form>
那一个系统有N个文员在用怎么办?!N×N?!
什么逻辑呀?
设计思路:
'利用动态session("flag")来判断是否添加数据
'如果刷新页面,session("flag")=request("flag")
<% if request("submit")="提交" and request("flag")<>"" and session("flag")<>request("flag") then %>
……
'提交后处理程序
……
'处理后,设置
session("flag")=Request("flag")
<% end if %>
#填写表单
<%
Dim num
Randomize
num = Int((1000-1+1)*Rnd+1) '动态获取flag的值
%>
<form>
……
<input type=hidden name=flag value="<%=num%>" >
……
<input type=submit name=submit value="提交" >
</form>
#22
可以把A页B页的内容都放在一页里,或用session()来判断一下。
#23
我也是用js跳转;不过反应有点慢!