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 コンソールにエラーはありません。Apache のエラー ログにあるように、私の php は正しくなく、Ajax データをリッスンしていないと思いますPHP Notice: Undefined index: dataString

どこが間違っていますか?ありがとう

編集:ubuntuマシンのlocalhostでこれを実行しています。メールサーバーをセットアップし、テストメールでテストしました

4

2 に答える 2

0

フォーム コードも表示できると便利です。ここにチュートリアルをまとめました: http://blog.fraser-hart.co.uk/ajax-contact-form-tutorial/

ファイルをダウンロードして、作成したものと比較できます。よく読んで、何かがどのように機能するかについて質問がある場合はお知らせください。正しい方向に向けます。

于 2013-03-25T07:03:06.227 に答える
0

次のことを試してください。

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