将表格提交到两个地方

时间:2014-05-29 18:12:46

标签: php jquery post contact-form

我遇到一个问题,我需要一个简单的联系表单来发布数据收集服务的动作,以及转换跟踪的感谢页面。

遗憾的是,数据收集服务页面不允许进行任何类型的重定向,因此我最好的选择是同时向感谢页面和数据收集服务提交。

我只是不知道怎么做到这一点......有人可以引导我朝着正确的方向前进吗?我已经做了很多搜索,但是无法使用jquery或javascript进行任何操作。

非常感谢任何建议/反馈/方法。

根据下面的回复,我试图让AJAX在将数据发送到收集服务之后重定向,但是我无法让它工作:

  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
  <script type="text/javascript">
  // Shorthand for $( document ).ready()
  $(function() { $("#ajaxform").submit(function(e)
 {
 var postData = $(this).serializeArray();
 var formURL = $(this).attr("action");
 $.ajax(
 {
    url : formURL,
    type: "POST",
    data : postData,
    success:function(data, textStatus, jqXHR) 
    {
        window.location.replace("http://example.com");
    },
    error: function(jqXHR, textStatus, errorThrown) 
    {
        //if fails      
    }
});
e.preventDefault(); //STOP default action
e.unbind(); //unbind. to stop multiple form submit.
}); });
</script>
<form name="ajaxform" id="ajaxform" action="https://secure.velocify.com/Import.aspx?Provider=IdealHomeLoansWebPOST&Client=IdealHomeLoansLLC&CampaignId=46"method="POST">

4 个答案:

答案 0 :(得分:3)

使用jQuery,您可以将所有内容发送到数据收集服务并等待答案。如果成功,请重定向到感谢页面。

您需要了解的所有内容都可以在本文中找到:http://hayageek.com/jquery-ajax-form-submit/

$(function() {
    $("#ajaxform").submit(function(e)
    {
        var postData = $(this).serializeArray();
        var formURL = $(this).attr("action");
        $.ajax(
        {
            url : formURL,
            type: "POST",
            data : postData,
            success:function(data, textStatus, jqXHR) 
            {
                //data: return data from server
            },
            error: function(jqXHR, textStatus, errorThrown) 
            {
                //if fails      
            }
        });
        e.preventDefault(); //STOP default action
        e.unbind(); //unbind. to stop multiple form submit.
    });
});

这将使用AJAX-Request替换默认的表单提交。

然后只需使用以下代码重定向到感谢页面:

window.location.replace("http://example.com");

答案 1 :(得分:2)

提交到Thank You页面,让Thank You页面向数据收集服务发出CURL请求。

或者,提交到提交CURL请求的中间页面,然后重定向到Thank You页面。

答案 2 :(得分:2)

我能想到的最直接的方法是为你的提交按钮设置一个onClick处理程序,然后使用JavaScript触发某种XHR发布请求到包含表单数据的数据收集服务。然后,您将return true,浏览器将发布到感谢页面。

例如使用JQuery(您的代码需要更多检查和复杂性)

HTML:

<form id="form" action="somewhere.php" method="post">
  <!-- form stuff here -->
  <input type="submit">
</form>

JS:

$('#form').submit(function() {
  $.post('somewhereElse.php', {data: $('#form-element').val()});
  return true;
});

答案 3 :(得分:0)

JQuery Ajax Post,可能必须将其设置为异步。 关于从第一个提交的成功,您可以提交到第二个。然后,在成功之后,您可以重定向到thankyou页面。