0

だから私はこのサブスクライブページを書いています..ユーザーが送信をクリックすると、データベースに電子メールを送信する必要があります..私はjQueryのpostメソッドを使用しているので、送信時に送信結果が返され、これがtrueの場合はボタンが消えて送信されたメッセージが表示されるはずですが、console.logを使用して成功を示す結果値を出力すると、これは発生しませんが、ifステートメントはelse句に移動し、エラーメッセージを出力します。

$.post("send_email.php", $("#contact_form").serialize(),function(result){
    console.log(result);
    //and after the ajax request ends we check       the text returned
    if(result == "sent"){

        //if the mail is sent remove the submit paragraph
        $('#button').remove();
        //and show the mail success div with fadeIn
        $('#mail_success').fadeIn(500);
    }else{
        console.log('going to failure clause');
        //show the mail failed div
        $('#mail_fail').fadeIn(500);
        //reenable the submit button by removing attribute disabled and change the text back to Send The Message
        $('#send_message').removeAttr('disabled').attr('value', 'Submit');
    }
});
4

2 に答える 2

2

console.logを使用して結果値を出力すると、成功と表示されます

だから、これはしません:

                    if(result == "sent"){

これである必要があります:

                    if(result == "success"){

于 2012-07-15T04:15:35.727 に答える
1

私の推測では、PHPの応答には、ログに記録したときに明らかではない空白が含まれていますresult。何らかの理由でPHPコードで修正できない場合は、次のようにJSif条件を更新して空白を無視することができます。

if (result.replace(/\s/g,"") === "sent") {
于 2012-07-15T04:56:38.277 に答える