2016-02-11 86 views
2

我有一個HTML表單。當用戶按sumbit jQuery發送一個帖子到一個php腳本(send.php)與數據。 在send.php文件創建一個PHP對象:嘗試和抓住phpmailer

$mail = new PHPMailer(true); 

然後我做了嘗試和catch:

try { 
    $mail->IsSMTP(); 

    // ........ code for host, usr/psw, body, header ........ 


    $mail->Send(); 

    echo "Ok, Sent!\n"; 

    } catch (phpmailerException $e) { 
     echo $e->errorMessage(); 
    } 

它給我發郵件,但我不知道在哪裏是消息echo "Ok, Sent!\n"; ...在哪裏?我無法在任何地方看到它。它應該在哪裏?我想問下提交button中顯示,例如,它可以顯示這一點,如果輸入的是不正確的:如果發送電子郵件

不正確的數據

發送郵件

這一點,如果它被正確發送:

好的,發送!

我該怎麼辦?

UPDATE 這是jQuery代碼在index.html頁面:

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

    var event_data = encodeURIComponent($("#event").text()); 

    var formID = $(this).attr('id'); 
    var formDetails = $('#'+formID); 
    $.ajax({ 
     type: "POST", 
     url: 'send.php', 
     data: formDetails.serialize() + "&event=" + event_data, 
     success: function (data) { 
     }, 
     error: function(jqXHR, text, error){ 
      $('#result').html(error);   
    } 
}); 
    return false; 
}); 
+0

它是在同一頁上'send.php',請告訴我們你的jQuery代碼 –

+0

我已經發布了一個答案,請參閱 –

回答

1

更改您的AJAX代碼是這樣的:

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

    var event_data = encodeURIComponent($("#event").text()); 

    var formID = $(this).attr('id'); 
    var formDetails = $('#'+formID); 
    $('#result').html('sending...'); // changing the text before sending mail... 
    $.ajax({ 
     type: "POST", 
     url: 'send.php', 
     data: formDetails.serialize() + "&event=" + event_data, 
     success: function (data) { 
      $('#result').html(data); // this will show the output of the page send.php 
      console.log(data); //this will also show the output of the page in the browser console. 
     }, 
     error: function(jqXHR, text, error){ 
      $('#result').html(error);   
    } 
}); 
    return false; 
}); 

send.php這樣的:

try { 
    $mail->IsSMTP(); 

// ........ code for host, usr/psw, body, header ........ 


if($mail->Send()){ 
    echo "Ok, Sent!\n"; 
} 

} catch (phpmailerException $e) { 
    echo $e->errorMessage(); 
} 
+0

我在sumbit按鈕後添加了一個

。我已經通過編輯更新了我的代碼。但是它向我展示了「確定,發送!」只是在控制檯,而不是在html頁面 – panagulis72

+0

ps:我寫了$('#results')。html(data);而不是提示 – panagulis72

+0

你是否添加了兩個div與'result'相同的'id'?如果是的話,那麼它不會工作... –

1

如果你從一個jQuery Ajax請求調用這個,這將是在jQuery的接收響應主體,這將在瀏覽器的檢查器/開發控制檯中可見。

+0

正確,你的'OK'響應將在成功函數的「data」參數中。 –