在phpmailer中尝试和捕获

时间:2016-02-11 09:47:28

标签: php jquery post echo phpmailer

我有一个HTML表单。当用户按下sumbit时,jQuery会将数据发送到带有数据的php脚本( send.php )。 在 send.php 文件中,我创建了一个php对象:

 $mail = new PHPMailer(true);

然后我尝试抓住:

    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下显示,例如,如果输入不正确,它可以显示:

  

数据不正确

这是发送电子邮件

  

发送邮件

如果正确发送,请

  

好的,已发送!

我该怎么办?

更新 这是index.html页面中的jQuery代码:

    $('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;
});

2 个答案:

答案 0 :(得分:1)

如果你是从jQuery ajax请求调用它,它将在jQuery接收的响应体中,这将在浏览器的inspector / dev控制台中显示。

答案 1 :(得分: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(); 
}