0

JSON でメールが送信されたことを確認してから、ajax でイベントをキャッチし、画面に成功メッセージを表示します。問題は、メールが送信されず、php スクリプトの最初の部分が原因で "sended":true にリダイレクトされることです。html と css は大丈夫です。私はそれをたくさんテストしました。私が実際に望んでいるのは、phpでメールを送信し、ajaxを使用して成功またはエラーメッセージを表示することです。問題は、PHP を使用するのはこれが初めてで、正しい方法が見つからないことです。私はこれを尋ねませんが、私は今夜までにプロジェクトを提出しなければならず、これが最後に行われることです. http://webofdreams.ro/vworker/finemaid/finemaid.html#のリンクからメールで確認できます。

JS:

$ajax({
                     "type":"POST",
                     "url":"sendemail1.php",
                     "data": { name1: name1Val, emailFrom1: emailFrom1Val, comments: commentsVal},
                     "dataType":'json',
                     "success":function(response){
                         if (response.sended){
                            alert ("Mail Sended ok"); //Code after mail send
                           }else{
                            alert (response.error); //Code or allert on error
                           }
                          },                
                     error: function (xhr, ajaxOptions, thrownError){
                      alert(xhr.status+" "+thrownError);
                     }

php:

$send = @mail($mailTo, $subject, $message, "From: ".$mailFrom1); 
if ($send){
    echo mail($mailTo, $subject, $message, "From: ".$mailFrom1) ? '{"sended":true}':'{"sended":false,"error":"Mail send fail."}';
}else{
 echo '{"sended":false,"error":"Request Error."}';
};
4

2 に答える 2

1

まず最初に、あなたのコードにエラーを見つけました

$.ajax({
 ^                    "type":"POST",
 |                    "url":"sendemail1.php",
 |                    "data": { name1: name1Val, emailFrom1: emailFrom1Val, comments: commentsVal},
                     "dataType":'json',
                     "success":function(response){
                         if (response.sended){
                            alert ("Mail Sended ok"); //Code after mail send
                           }else{
                            alert (response.error); //Code or allert on error
                           }
                          },   

         ----------->error: function (xhr, ajaxOptions, thrownError){
                      alert(xhr.status+" "+thrownError);
                    // should be 
         ----------->"error": function (xhr, ajaxOptions, thrownError){
                      alert(xhr.status+" "+thrownError);

                     }
于 2012-07-06T08:58:48.103 に答える
1

あなたの ajax リクエストはエラーでいっぱいなので、最初から書きました。以下のスクリプトは、少なくとも ajax リクエストを処理します。

        $(function(){
        name1Val = 'CaptureName';
        emailFrom1Val = 'CaptureEmail';
        commentsVal = 'CaptureComments';
        parameters = 'name1=' + name1Val + '&emailFrom1=' + emailFrom1Val + '&comments=' + commentsVal;
        $.ajax({
            type: "POST",
            url: "sendmail.php",
            data: parameters,
            error: function(response){
                alert(response);
            },
            success: function(response){
                alert(response);
            }
        });
    });
于 2012-07-06T09:08:24.700 に答える