jQuery / Ajax联系表单不起作用

时间:2013-03-15 06:05:57

标签: php jquery ajax

我是jQuery的新手。我正在尝试提交联系表单,并显示感谢信息以获得反馈。我看过NetTuts +的教程。我的表格没有提交。这是我的代码:

的jQuery

<script src="jquery.js"></script>
<script>
    $(document).ready(function() {
        $('.error').hide();
        $("#submitButton").click(function() {
            $('.error').hide();  
            var name = $("input#name").val();  
            if (name == "") {  
                $("label#name_error").show();  
                $("input#name").focus();  
                return false;  
            }  
            var email = $("input#email").val();  
            if (email == "") {  
                $("label#email_error").show();  
                $("input#email").focus();  
                return false;  
            }  
            var companyName = $("#usermessage").val();  
            if (companyName == "") {  
                $("label#message_error").show();  
                $("input#usermessage").focus();  
                return false;  
            } 
            var subject=$("#subject option:selected").text();
            var dataString = 'name='+ name + '&email=' + email + '&message=' + companyName;  
            //alert (dataString);return false;  
            $.ajax({  
                type: "POST",  
                url: "mailer.php",  
                data: dataString,  
                success: function() {  
                    $('#contact_form').html("<div id='message'></div>");  
                    $('#message').html("<h2>Contact Form Submitted!</h2>")  
                        .append("<p>We will be in touch soon.</p>")  
                        .hide()  
                        .fadeIn(1500, function() {  
                            $('#message').append("Thank you");  
                        });  
                }  
            });  
            return false; 
        }); 
    });
</script> 


PHP

<?php
    $mailTo = 'varma.anirudh12@gmail.com';
    $name = htmlspecialchars($_POST['name']);
    $mailFrom = htmlspecialchars($_POST['email']);
    $subjectNumber = htmlspecialchars($_POST['subject']);
    $message_text = htmlspecialchars($_POST['msg']);
    switch ($subjectNumber)
    {
        case 0:
            $subject='Sales';
            break;
        case 1:
            $subject='Careers';
            break;
        case 2:
            $subject='Other';
            break;
    }
    $dataString=htmlspecialchars($_POST['dataString']);
    //$message =  'From: '.$name.'; Email: '.$mailFrom.' ; Message: '.$message_text;

    $sendcon=mail($mailTo, $subject, $message);
    if ( isset($_GET["ajax"]) ) {
        echo $sendcon ? "success" : "error";
    } else {

}

?>

问题是按下提交按钮时没有任何反应。 javascript控制台上没有错误。 我认为我的php不正确并且没有收听Ajax数据,因为apache的错误日志显示PHP Notice: Undefined index: dataString

我哪里错了? 感谢

编辑:我在ubuntu机器上的localhost上运行此操作,我已经设置了邮件服务器并使用测试电子邮件对其进行了测试

2 个答案:

答案 0 :(得分:0)

您应该尝试以下方法:

$.post("mailer.php", { name: "John", email: "jsmith@xyz.com" } );

答案 1 :(得分:0)

如果我们也可以看到您的表单代码,那将非常有用。我在这里整理了一个教程:http://blog.fraser-hart.co.uk/ajax-contact-form-tutorial/

您可以下载文件并将其与您提供的文件进行比较。请仔细阅读并告诉我您是否对任何工作有任何疑问,我会指出您正确的方向