问题:主页面通过url传参banktype=1103给编辑页面,编辑页面的表单中同样有一个banktype参数,表单post自提,并且采用#自提
页面取值:post方法判断上方取值一次,post判断内重新取值一次
调试发现:当表单内设置bantype=1803时自提时,两次对banktype取值没有改变过来,仍然是1103,何解?
解答:
主页面传参时,url是xxx_update.jsp?banktype=1103&matchid=2
表单采用#自提时,问题来了,表单内部设置banktype=1803,提交到的地址#其实是带参刷新,本页原来的url是xxx_update.jsp?banktype=1103&matchid=2,
#自提后一样是提交到xxx_update.jsp?banktype=1103&matchid=2,不管在表单对banktype设置成多少,#自提的这个url又会将banktype重新赋值成了1103,
这样页面刷新时,两次对banktype取值都是1103;
解决方法1:
同样采用#提交,但:
在表单内将banktype更改name为banktype2,在post判断上方,维持不变对banktype取值(可接受主页面提交给编辑页面的url传参),
在post判断内,对banktype2取值,这样banktype2取的值就是表单中这个参数的实际值;
解决方法2:
不采用#自提,form中post提交action到'xxx_update.jsp?matchid=<%=matchid%>'(注意这里不再对banktype进行传参)
注意这里matchid=2要带过来,如果直接提交给xxx_update.jsp,那么表单提交刷新页面后,会取不到这个matchid参数,没这个参数,执行编辑的存储过程时,会执行失败;
解决方法3:
同方法2,不采用#自提,form中post提交action到'xxx_update.jsp,(注意这里不再对banktype进行传参)
要想传递matchid,必须在form表单内部设置一个name=matchid且类型为hidden的input项,并且正确给其赋值,这样表单提交时,一样可以将这个matchid通过post提交给xxx_update.jsp;