我使用的是zapier.com的第三方表单处理器。问题是,我需要一种方法来在向第三方表单处理器提交数据后重定向用户。 Zapier.com接受发布,获取和提交提交。
我在考虑:
我可能会过度思考这个问题,但我看到这样做的唯一方法就是制作一个表单,用于发布已发布到其中的数据。否则,表单只会将我的用户发送到第三方处理器,而不会将其重定向到我选择的任何页面。第三方表单处理器没有办法使用自定义重定向。
答案 0 :(得分: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代码(找到并且一切正常)然后重定向到我的页面。如果soemthing出错,那么服务器将抛出40 *状态代码,脚本将进入错误功能。
答案 1 :(得分: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()
并检查是否存在已知成功消息。