提交表单按钮后重定向到2个不同页面

时间:2019-05-17 05:21:08

标签: php ajax

我有html表单,当我单击该表单时,将其重定向到贝宝页面,但是我想在贝宝页面上重定向之前,应该先先先发送send.php和贝宝页面

我尝试了onclick按钮上的onclick函数,并且该函数使用窗口位置函数将其重定向到send.php页面,但它不能正常工作,仅重定向贝宝页面

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" enctype="multipart/form-data" >

    <input class="btn btn-primary" type="submit" value="Send" onclick="mymail()">

</form>

javascript代码

<script>
function mymail() {
 window.location.assign("send.php")
}
</script>

仅重定向贝宝页面,而不重定向send.php

4 个答案:

答案 0 :(得分:0)

这里您使用的是输入类型Submit,因此在按下该按钮时,它将采用paypal.com上的默认表单提交操作

您的单击也可以在这里工作(尝试发出警报以使其将执行),但问题是单击完成后将继续执行表单的默认操作。

因此,如果您要从单击我的mail()函数中重定向,则需要将ajax添加到javascript函数中

  <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" enctype="multipart/form-data">


function mymail()
    {
    var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("frm").submit()
    }
  };
  xhttp.open("GET", "send.php", true);
  xhttp.send();

    return false;
   }

答案 1 :(得分:0)

首先,您必须为表单添加ID并按如下所示更改onclick函数

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="Post" enctype="multipart/form-data" id="frm">
    <input type="submit"  value="send" onclick="return mymail()">
</form>

现在在mymail()中使用ajax调用send.php,并在ajax成功后通过javascript通过表单ID(如下所示)提交表单

function mymail()
    {
        var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
              document.getElementById("frm").submit()
        }
      };
      xhttp.open("GET", "send.php", true);
      xhttp.send();

        return false;
    }

现在单击提交,页面通过ajax转到send.php,成功后将提交表单

答案 2 :(得分:0)

提交按钮的第一个事件是将表单提交到您的“操作”位置(贝宝),第二个事件“ onclick”是重定向到send.php。

因此,如果您要先将其发送到send.php,请执行动作send.php,在那做您的事情,而不是将您的帖子数据发送到paypal。 看一下这样的内容:https://stackoverflow.com/a/32197769/6340057

答案 3 :(得分:0)

首先清除action=""method="",因为即使您更改button属性,当用户在该表单中单击Enter时,无论您的JavaScript做什么,它都将重定向到给定的操作

第二,将您的<input>更改为<button type="button">而不是<input type="submit">,然后像您一样在此处调用onclick="mymail()"函数。

这是您的表格的外观:

<form enctype="multipart/form-data" >

    <button class="btn btn-primary" type="button" onclick="mymail()">Send</button>

</form>

确保您已阅读所有表单字段并将其放入数据中。

祝你好运。