在调用PHP函数的AJAX请求之后,在表单提交时重定向页面

时间:2017-01-24 14:54:45

标签: javascript php html ajax

我有一个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', '');

                }

            },

2 个答案:

答案 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";