单击按钮时是否调用AJAX?

时间:2016-03-24 22:49:22

标签: php html ajax

现在我的网站打开了,用户可以选择他们想要订购的商品。当他们想要提交订单时,我只想发送一封电子邮件,但电子邮件还没有通过,我的页面才重新开始。

的JavaScript / AJAX:

<script type="text/javascript">
    $(document).ready(
        function() {
            $('#wholesaleOrderForm').submit(
                function() {
                    if (validateForm()) {
                        $.post("wholesale_form.php",
                            $('#wholesaleOrderForm').serialize(),
                            function(response) {
                                alert('response = ' + response);
                                if (response == "success") {
                                    $('#ajax-msg').html("Thanks for subscribing!");
                                    $('#ajax-msg').style.color = "green";
                                    $('#ajax-msg').hide(5000);
                                } else {
                                    $('#ajax-msg').html("Sorry, there is some error. Please try again.");
                                    $('#ajax-msg').style.color = "red";
                                    $('#ajax-msg').hide(5000);
                                }
                            }
                        );
                        // prevent postback
                        return false;
                    } else {
                        return false;
                    }
                }
            );
        }
    );
</script>

PHP代码:

<?php

$to = "lazar108@hotmail.com";
    $subject = 'hello';
    $message = "Hello!!";
    $headers = 'From: DoNotReply@COMPANY_EMAIL.com';

    mail($to, $subject, $message, $headers);

?>

2 个答案:

答案 0 :(得分:2)

您需要使用event.preventDefault();

禁用表单的默认操作

答案 1 :(得分:2)

继Julaine的建议之后,改变这两行:

$('#wholesaleOrderForm').submit(
    function() {

到此:

$('#wholesaleOrderForm').submit(
    function(e) {
        e.preventDefault();
        //rest of your code

说明:

通过导航到另一个页面提交表单(通常在表单标签的action="newpage.php"属性中指定。在页面导航之前,您的AJAX代码没有时间完成。*请注意,如果{{1}没有指定属性,页面只刷新 - 对于AJAX也是同样的问题。

如果不起作用,还需要进一步的建议:

(1)分而治之。大大减少你的代码,直到它工作,然后逐步添加其余的,修复你找到它们时的错误。

(2)将ajax降至最低:

action=

<强> wholesale_form.php

$('#wholesaleOrderForm').submit(function(e) {
    e.preventDefault();
    $.post("wholesale_form.php", function(response) {
        alert(response);
    });
});