0

JavaScriptがアクティブ化されると、このフォームが常に「エラー」を返すのに、JavaScriptが非アクティブ化されると正常に機能する理由を理解しようとしています。
それはとと関係がecho "success"ありecho "error"ますが、私は本当に何が悪いのかを知ることができません。エコーしようとした12trueまたはfalse-それは決して機能しません。なんで?

私のjQueryコード:

$("form").submit(function () {

        var name     = $( "input[name=name]" ),
            mail     = $( "input[name=email]" ),
            message  = $( "textarea[name=message]" );

        var data = "name=" + name.val() + "&mail=" + mail.val() + "&message="  + encodeURIComponent(message.val());

        $.ajax({
            url: "my_form.php",
            type: "POST",
            data: data,
                success: function ( data ) {
                    if ( data == "success" ) {
                        alert( "Everyhting is good." );
                    } else {
                        alert( "Error" );
                    }
                }
        });

        return false;
})

そしてPHPの部分:

$name    = $_POST["name"];
$email   = $_POST["email"];
$message = $_POST["message"];

function checkEmail( $e ) {

    $isValid = true;

    if ( strlen( $e ) === 0 ) {
        $isValid = false;
    }

    if ( !preg_match( "/^((?:(?:(?:\w[\.\-\+]?)*)\w)+)\@((?:(?:(?:\w[\.\-\+]?){0,62})\w)+)\.(\w{2,6})$/", $e ) ) {
        $isValid = false;
    }

    if ( $isValid == true ) {
        echo "success";
    } else {
        echo "error";
    }
}

checkEmail( $email );
4

1 に答える 1

2

あなたはデータ文字列でemailを呼び出しており、phpmailで期待しています。$_POST['email']

var data = "name=" + name.val() + "&mail=" + mail.val() + "&message="  + encodeURIComponent(message.val());

mail上の行を下のようなメールに変更してください。

var data = "name=" + name.val() + "&email=" + mail.val() + "&message="  + encodeURIComponent(message.val());
于 2013-02-15T16:49:38.060 に答える