0

我使用的是 zapier.com 的第 3 方表单处理器。问题是,在将数据提交到第 3 方表单处理器后,我需要一种方法来重定向用户。Zapier.com 接受 post、get 和 put 提交。

我在想:

  1. 客户提交表格
  2. 我的 php 表单处理器捕获数据
  3. 然后我的 php 表单处理器通过 POST 或 GET 将数据提交到第 3 方表单处理器
  4. 然后我的 php 表单处理器将用户重定向到感谢页面。

我可能想多了,但我看到这样做的唯一方法是制作一个表单来发布已发布的数据。否则,表单只会将我的用户发送到第 3 方处理器,而不会将他们重定向到我选择的任何页面。第 3 方表单处理器无法让我使用自定义重定向。

4

2 回答 2

0

您可以使用Guzzle代理用户请求。

    $client = new Guzzle\Http\Client();

    $request = $client->post('/3rd.party.php')
        ->addPostField('user_field_1', $_POST['user_field_1'])
        ->addPostField('user_field_2', $_POST['user_field_2']);

    $response = $request->send();

    if ($response->isSuccessful()) {
        //show message
    }

缺点是您不能 100% 确定表单提交确实成功。为了实现这一点,您可以废弃$request->getBody()并检查是否存在已知的成功消息。

于 2013-09-09T22:11:47.400 回答
0

使用 javascript 和 Ajax 可以这样做(使用 jQuery):

$("#idOfTheForm").submit(function(e) {
    e.preventDefault();
    $.ajax({
        method : "post",
        url : this.action,
        data : $(this).serialize(),
        success : function() {
            window.location = "yourUrlOfThanks.html";
        },
        error : function() {
            alert("Something went bad");
        }
    });
});

所以基本上它是:向这个表单的操作 url 发送一个发布请求,一旦它抛出一个 200 代码(找到并且一切正常)然后重定向到我的页面。如果出现问题,服务器将抛出 40* 状态码,脚本将进入错误函数。

于 2013-09-09T21:45:33.937 回答