2017-04-12 8 views
1

この条件が真であればメールを送信します。私はいくつかのテストを行い、PHP関数が正しく動作しています。問題はMail()オブジェクトを宣言するときに発生します。アヤックスは私に500エラーを返します。同じphpファイルで、私は関数enviarEmailを使用し、正しく動作します。私はajaxから関数を呼び出すときに問題があります。ヘルプpls。ありがとう!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(); 
} 

これは、私たちが送る、治療を行うことができますどのように一般的なアイデアで、あなたのexempleを使用して、ajaxで受信します。

関連する問題