最好把记录写入表里面,重复提交,做一个判断,或者通过session记录标示,当标示更改,说明已经提交完成。

解决方案 »

  1.   

    每个订单不是有订单号么,且是唯一的
    一个字段存放付款状态(如status),未付款时为0,付款成功置为1,若是再次刷新,且查询该订单状态为1,就提示他已付款成功,不做之后的数据插入
      

  2.   

    不知道你的框架是如何的。如果有业务逻辑层的话,先执行付款的业务逻辑,执行完之后不要直接显示结果画面,而是执行一个显示用的业务逻辑。在那个逻辑里显示结果画面。这样刷新的时候就只会刷新显示用的业务逻辑。不会重复提交。还有种比较保险的办法。在提交的页面中,生成一个唯一码,放在session中,同时也放在画面的隐藏控件中,在提交时,判断session中和隐藏控件中的唯一码是否一致,是的情况下执行提交操作,操作完成后删除session中的唯一码。这样刷新的时候因为session中已经被删除,比对不一致,就可以提示不要重复刷新页面了。
      

  3.   

    <form action='' name="doaction" method="post">
    <input type="button" name='subm' value="tijiao"  onClick="document.doaction.subm.value='正在提交,请等待...';document.doaction.subm.disabled=true;document.the_form.submit();">
    </form>
    当点击之后就变为了灰色,用户不能再次点击进行提交