我有一个像这样的html表单:
<form action="myServer.com/test.php" method="post">
...
</form>
提交表单后,应将用户重定向到myServer.com/test.php,并将发布数据发送到脚本。但是,在同一时间(或之前),我想将相同的POST数据发布到另一个脚本“myServer.com/test2.php”。
$.post("myServer.com/test2.php", variableWithTheFormPOSTData);
我试图将一个EventListener附加到表单提交,但这似乎不起作用,也许jquery post不能在重定向之前足够快地提交?
我希望你能帮助我。 :(
答案 0 :(得分:0)
每当你使用带onsubmit的方法时,请确保它返回true,否则它将不会提交。
答案 1 :(得分:0)
使用按钮作为提交按钮,以便在您单击时同时发布表单。并触发ajax函数将数据间接发布到第二页。
<form name="myform" action="myServer.com/test.php" method="post">
...
<button onclick="doIndirectPost();"></button>
</form>
并且在ajax发布功能的成功回调中触发您的表单帖子
function doIndirectPost() {
//initialize variableWithTheFormPOSTData here
$.post("myServer.com/test2.php", variableWithTheFormPOSTData,function(success,error) {
//ajax post is completed now we trigger the form post to test.php
document.myform.submit();
});
}
答案 2 :(得分:0)
你可以使用ajax本身,这将避免重新加载页面
<form id="form1">
.....
<input type="text" name="email"/> <!--Example input text box-->
<input type="button" id="submit"/>
</form>
和jquery代码
$("#submit").click(function()
{
$.post("myServer.com/test2.php", $("#form1").serialize());//$("#form1).serialize() will get the data in the form automatically
$.post("myServer.com/test.php", $("#form1").serialize());
});
.serialize()
会自动序列化要发布的表单中的数据
使用此
<?php
parse_str($_POST['serialize'], $data);
$name = $data["email"]
// do your code
?>
希望这有帮助,谢谢