猿问

提交两份有一个按钮的表格

提交两份有一个按钮的表格

我有HTML两种表单,一种是在使用PHP输入数据库时提交数据,另一种是将用户引导到PayPal支付页面,我的问题是用户必须提交这两种表单,当然,我不希望它们这样做。是否对两个表单使用一个提交按钮?

(欢迎JavaScript)


牛魔王的故事
浏览 563回答 3
3回答

交互式爱情

您应该能够使用JavaScript完成此任务:<input&nbsp;type="button"&nbsp;value="Click&nbsp;Me!"&nbsp;onclick="submitForms()"&nbsp;/>如果您的表单具有ID:submitForms&nbsp;=&nbsp;function(){ &nbsp;&nbsp;&nbsp;&nbsp;document.getElementById("form1").submit(); &nbsp;&nbsp;&nbsp;&nbsp;document.getElementById("form2").submit();}如果表单没有ID但有名称:submitForms&nbsp;=&nbsp;function(){ &nbsp;&nbsp;&nbsp;&nbsp;document.forms["form1"].submit(); &nbsp;&nbsp;&nbsp;&nbsp;document.forms["form2"].submit();}

回首忆惘然

表单提交导致页面导航到action表格的。因此,您不能以传统的方式提交这两种表单。如果您试图通过调用JavaScript来做到这一点form.submit()在每个表单上,除了最后一次提交之外,每个请求都将被中止。因此,您需要通过JavaScript异步提交第一个表单:var&nbsp;f&nbsp;=&nbsp;document.forms.updateDB;var&nbsp;postData&nbsp;=&nbsp;[];for&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;f.elements.length;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;postData.push(f.elements[i].name&nbsp;+&nbsp;"="&nbsp;+&nbsp;f.elements[i].value);}var&nbsp;xhr&nbsp;=&nbsp;new&nbsp;XMLHttpRequest();xhr.open("POST",&nbsp;"mypage.php",&nbsp;true);xhr.setRequestHeader("Content-type",&nbsp;"application/x-www-form-urlencoded");xhr.send(postData.join("&"));document.forms.payPal.submit();

慕尼黑5688855

在Chrome和IE9(我猜所有其他浏览器也是如此)中,只有后者会生成一个套接字连接,第一个将被丢弃。(浏览器检测到这一点,因为这两个请求都是在上面代码中的一个JavaScript“timeslice”内发送的,并且丢弃了除最后一个请求之外的所有请求。)如果您让一些事件回调执行第二次提交(但在收到答复之前),则第一个请求的套接字将被取消。这是一定没有什么值得推荐的,因为在这种情况下,服务器很可能已经处理了您的第一个请求,但是您永远不会确定。我建议您使用/生成一个可以处理服务器端的请求。
随时随地看视频慕课网APP
我要回答