我有一个HTML页面(index.html
),它收集一个电子邮件地址并通过AJAX POST请求将其提交给服务器。单击提交按钮时,javascript函数通过AJAX执行post请求,然后页面提交给自己。我需要修改它,以便页面提交到另一个页面(thankyou.html
)而不是自己。我不确定如何在PHP中执行此操作。提交表单并执行AJAX查询后,有没有办法重定向PHP页面?
我不确定是否应该使用Javascript或HTML或PHP重定向页面。
这是index.html
中的表单:
<form class="email-form" method="POST" validate>
<div class="email-input-container register-info-email">
<input class="email-input" type="email" autocapitalize="off" autocorrect="off" autocomplete="off" required name="MERGE0" id="MERGE0" placeholder="Email Address" pattern="[a-z0-9._%+-]+@[a-z0-9-]+\.[a-z]{2,63}$" aria-label="Email Address">
<input id="sub-button" type="submit" class="submit-button" value="Submit" >
<span class="success-message"><span class="sr-only">We got you</span></span>
</div>
</form>
这是PHP中的帖子请求(post.php
)
if ( isset($_POST['email']) ) :
$data = [
'email' => $_POST['email']
];
if ( isset($_POST['platform']) ) :
$data["device"] = $_POST['platform'];
endif;
syncMailchimp($data);
endif;
这是AJAX请求:
$.ajax({
type: "POST",
url: 'post.php',
data: data,
success: function(data, status) {
var message = JSON.parse(data).message;
if (message == "error") {
$('.email-form small').html('An error has occurred. Please try submitting again.');
smallHighlight();
} else if (message == "subscribed") {
$('.email-form small').html('You are already subscribed');
smallHighlight();
} else {
$('.email-form').addClass('form-success');
$('.email-form small').attr('style', '');
}
},
答案 0 :(得分:1)
如果您想重定向到另一个页面,请在表单成功提交后将其放入
window.location = "http://www.example.com/thankyou.html";
编辑:您不应该在PHP中处理此重定向,因为这是异步调用。你需要在提交脚本中以某种方式引用它
希望有所帮助
答案 1 :(得分:0)
在PHP中,您可以使用它。
header('Location: http://www.example.com/thankyou.html');
和Javascript
window.location.replace("http://www.example.com/thankyou.html");
或
window.location.href = "http://www.example.com/thankyou.html";