使用AJAX顺序提交两个表单

时间:2014-07-23 15:06:11

标签: ajax forms

我正在尝试从this线程实现答案,但我从未使用过AJAX。

第一个表单设置了第二个表单中所需的变量,一旦设置了这个,我希望它按照第二个表单重定向(所以我猜警告想要从AJAX中出来?) 用charles babbage的答案更新第一个表格后提交。

感谢您的帮助,非常感谢!

<script>
$(document).ready(function() {
    $("#subbut").click(function() {
        $.post($("#priceselect").attr("action"), $("#priceselect").serialize(),
          function() {
            $.post($("#globaliris").attr("action"), $("#globaliris").serialize(),
              function() {
                alert('Both forms submitted');
              });
          });
      });
  });
</script>

为了首先提交

,我把它放在首位
<form name="priceselect" id="priceselect" method="post">
  <select name="price" id="mySelect" onchange="document.getElementById('selectedValue').innerHTML = this.value;">
    <option value="100">Option 1</option>
    <option value="120">Option 2</option>
    <option value="115">Option 3</option>
    <option value="135">Option 4</option>
    <option value="80" >Option 5</option>
  </select>
<input value="Continue" id="subbut" type="Submit" />
</form>

应该

(isset($_POST['price']));
$price = $_POST['price'];

在同一页面中,然后在提交

的情况下重定向到第三方
<form id="globaliris" action="https://redirect.globaliris.com/epage.cgi" method="post" class="select">

<input type=hidden name="MERCHANT_ID" value="<?=$merchantid?>">
<input type=hidden name="ORDER_ID" value="<?=$orderid?>">
<input type=hidden name="CURRENCY" value="<?=$curr?>">
<input type=hidden name="AMOUNT" value="<?=$amount?>">
<input type=hidden name="TIMESTAMP" value="<?=$timestamp?>">
<input type=hidden name="MD5HASH" value="<?=$md5hash?>">
<input type=hidden name="AUTO_SETTLE_FLAG" value="1">
<br />
<br />
</form>

1 个答案:

答案 0 :(得分:0)

为了触发您在单击按钮时在Form标签中指定的操作,该按钮应该是Submit类型,并且它应该在您的表单中。 “提交”按钮的位置为重要

  <input type="submit" value="something" id="something">

修改(根据您的新问题)

如果您希望将两个表单内容提交到一个操作,只需添加序列如下:

      $.post($("#priceselect").attr("action"),$("#priceselect").serialize()+$("#globaliris").serialize() ,
          function() {
            alert('Both forms submitted');
          });
  });