2

我是 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 上运行它,我已经设置了邮件服务器并使用测试电子邮件对其进行了测试

4

2 回答 2

0

您应该尝试以下方法:

$.post("mailer.php", { name: "John", email: "jsmith@xyz.com" } );
于 2013-03-15T06:11:36.553 回答
0

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

您可以下载文件并将它们与您想出的内容进行比较。通读一遍,如果您对任何工作方式有任何疑问,请告诉我,我会为您指明正确的方向

于 2013-03-25T07:03:06.227 回答