我试图同时提交2张表格 我试图将1个表单发送到我的数据库,另一个表单发送到另一个站点
我的代码就像:
function submitform(){
document.forms["form2"].submit();
document.forms["form1"].submit();
}
<form name="form1" action="1.php" method="post">
<!-- ... -->
</form>
<form name="form2" action="2.php" method="post" target="foo">
<!-- ... -->
</form>
<a onclick="submitform();">Go</a>
现在,如果我只提交form2,它会在新标签中打开并且有效但当我尝试提交它们时它只提交form1 我不知道为什么
任何帮助将不胜感激
谢谢
答案 0 :(得分:1)
一次只能提交一份表格。
document.forms["form1"].submit();
document.forms["form2"].submit();
第一行是向运行PHP的服务器发送HTTP请求。响应将覆盖当前页面,可能是新的HTML文档。这意味着后续代码没有实际意义。即使它开始执行,任何更改都不会持续。
要解决此问题,请将两个表单合并为一个,或使用AJAX从服务器“幕后”(异步)获取所需信息,并使用JavaScript手动更新页面。
答案 1 :(得分:1)
答案 2 :(得分:0)
使用jquery,您可以使用ajax
发布表单function submit_forms() {
$.post('1.php', $('#form1').serialize(), function() {
// do stuff when finish
});
$.post('2.php', $('#form2').serialize(), function() {
// do stuff when finish
});
}
答案 3 :(得分:0)
在发送ajax请求时,您需要使用ajax请求提交至少一个表单和一些jasvcript来暂停表单的提交。
使用jQuery你会使用类似下面的内容
<form id="theForm" method="post" action="your/formhandler/on/your/server">
<fieldset id="myInfo">
// form fields to post data to you in here
</fieldset>
<fieldset id="theirInfo">
// form fields to post data to the 3rd party in here
</fieldset>
<input type="submit" value="submit" />
</form>
使用正确的提交按钮可以更好地获取所有内容,但是eth javascript技术(略微调整)woudl也可以使用2个单独的表单和<a>
标记。
$(function (){ // run this code once teh page has finished loading
$("#theForm").submit(function() {
$.ajax({
type: "post",
url: "http://their/form/handler",
data: $("#theirInfo").serialize() // off the top of my head I'm not 100% sure this will work, you may need to do $("#theirInfo").find("input,select,textarea").serialize()
})
});
})
您的服务器上的表单处理程序将收到所有数据,但您可以忽略/丢弃您不需要的位。