2017-04-12 57 views
1

如果这种情况为真,我想发送一封电子邮件。我已经做了一些测试,PHP功能正常运行。当我声明Mail()对象时,问题就出现了。阿贾克斯回报我500错误。在同一个php文件中,我使用函数enviarEmail并且它可以正常工作。当我从ajax调用函数时遇到问题。请帮助。谢谢!使用ajax执行php函数

- > AJAX

if (tipoSolicutud == "Codi Legalitat") { 
    $.ajax({ 
    url: "functions.php", 
    dataType: "text", 
    type: 'post', 
    data: {titol: titol, destinatari: destinatari, missatge: missatge}, 
    error: function (req, status, err) { 
     alert(req, status, err); 
    } 
    }); 
} 

PHP文件

if (isset($_POST["destinatari"])) { 
    enviarMail(); 
} 

function enviarMail($destinatarip, $titolp, $missatgep) { 
    $destinatari = isset($_POST["destinatari"]) ? $_POST["destinatari"] : $destinatarip; 
    $titol = isset($_POST["titol"]) ? $_POST["titol"] : $titolp; 
    $missatge = isset($_POST["missatge"]) ? $_POST["missatge"] : $missatgep; 
    $mail = new Mail(); 
    $mail->setEmisor("[email protected]"); 
    $mail->setDestinatari($destinatari); 
    $mail->setUsuari("[email protected]"); 
    $mail->setContrasenya('sxS28RemXQZk'); 
    $mail->setTema($titol); 
    $mail->setMissatge($missatge); 
    $mail->enviar(); 
} 
+0

它不会给你错误,但你有一个错字:'tipoSolicutud'应该是'tipoSolicitud'。祝你今天愉快! ;) – SrAxi

+0

@WilomGfx no dataType是您期望从服务器返回的数据。 – Hulothe

+1

[打开你的PHP错误](http://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display)如果你还没有这样做。 – Mikey

回答

0
$.ajax({ 
     url: "functions.php", 
     dataType: "text", 
     type: 'post', 
     data: {titol: titol, destinatari: destinatari, missatge: missatge}, 
     success:function(data){ 
      if(data['error']){ 
       alert(data['error']); 
      }else{ 
       alert(data['success']); 
      } 
     }, 
     error: function(data, errorThrown){ 
      console.log(errorThrown); 
     } 
}); 

PHP:

if (isset($_POST["destinatari"])) { 
    enviarMail(); 
    if ($error){ 
    $msg = array("error"=>"some error"; 
    } else {  
    $msg = array("success"=>"everything is ok"); 
    } 
    echo json_encode($msg);die; 
} 

function enviarMail($destinatarip, $titolp, $missatgep) { 
    $destinatari = isset($_POST["destinatari"]) ? $_POST["destinatari"] : $destinatarip; 
    $titol = isset($_POST["titol"]) ? $_POST["titol"] : $titolp; 
    $missatge = isset($_POST["missatge"]) ? $_POST["missatge"] : $missatgep; 
    $mail = new Mail(); 
    $mail->setEmisor("[email protected]"); 
    $mail->setDestinatari($destinatari); 
    $mail->setUsuari("[email protected]"); 
    $mail->setContrasenya('sxS28RemXQZk'); 
    $mail->setTema($titol); 
    $mail->setMissatge($missatge); 
    $mail->enviar(); 
} 

这是一个总的想法,我们该怎么办处理的发送和通过ajax接收,使用你的例子。