2017-05-08 11 views
-1

ImはAjaxから成功を収めていますが、意図したメールを受信して​​いないため、PHPに問題はないようです。私はPHPで少し経験がある、私はPHPからいくつかのフィードバックを得るためにいくつかの方法が必要です。Ajaxを使用してmail()の戻り値を確認する方法

のjQuery

function PHP_EMAIL(name, email, message){ 
     var emailInfo = [name,email,message];  
     $.ajax ({ 
      type: "POST", 
      url:"the_php_file.php", 
      data: {email_info_array: emailInfo}, 
      success: function(data) { 
      alert(data); <---alerts the entire php script back 
      alert("Email was successfuly sent!); <<<--- alerts success! 
                 but no email recieved 
      } 
     }); 
    } 

PHP

$email_info = json_decode($_POST['email_info_array']); 
$to = "[email protected]"; 

$subject = 'portfolio contact'; 
$user_name = $email_info[0]; 
$user_email = $email_info[1]; 
$message = $email_info[2]; 
$headers = "From: website.com"; 
$headers.= "MIME-Version: 1.0\r\n"; 
$headers.= "Content-type: text/html; charset=iso-8859-1\r\n"; 

if(mail($to,$subject,$message,$headers)) 
{ 
echo "sent"; 
} 
else 
{ 
echo "fail"; 
} 

HTML

<div class="site-contact-box site-text-20 site-text-grey-violet"> 

         <!-- form --> 
         <form onsubmit="return false" id="emailform"> 

          <div class="site-form-error">* You must fill all fields of the form *</div> 


          <br> Name <input type="text" name="name" value="" required> <div class="site-name-error site-text-12"> * invalid name </div> 
          <br> E-mail <input type="text" name="email" value="[email protected]" required> <div class="site-email-error site-text-12"> * invalid email </div> 

          <br> 
          <div class="site-message-error site-text-12"> * message must be more than (8 characters) </div> 
          <br> <br> please leave a message... 

          <br> <p class="site-text-12"> (minimum 8 characters) <p> 

           <br> 
          <textarea rows="12" cols="50" name="message" form="emailform" required></textarea> 

          <br> 
          <div class="site-agree-error site-text-12"> you must agree to terms </div> 
          <br> <br> 
          <div class="site-agreement site-text-13 site-text-black"> 
           * I agree to the <a href="#">Terms & Agreement</a> <input type="checkbox" id="agree" required> 
          </div> 

          <br> 
          <input class="site-text-bold site-text-15" type="submit" name="submit" onclick="checkInput()"> 
         </form> 
        </div> 
+0

は、どのようなあなたのhtmlフォームは次のように見えますか? – OldPadawan

+0

onclick()を使用してjavascript関数を呼び出すフォーム、javascript関数は入力をチェックして、上記のようにデータをphpに転送します – horrorfan

+0

フォームのhtml出力は何ですか?それ以外にコンソールのエラー? PHPで? – OldPadawan

答えて

-1
<?php  
    header('Content-type: application/json'); 
    echo json_encode($response_array);?> 

query succeed or not. 
    if(mysql_query($query)){ 
     $response_array['status'] = 'success'; 
    }else { 
     $response_array['status'] = 'error'; 
    } 

On the client side: 

    success: function(data) { 
     if(data.status == 'success'){ 
      alert("Thank you for subscribing!"); 
     }else if(data.status == 'error'){ 
      alert("Error on query!"); 
     } 
    }, 
+0

PHPに新しい、データは正確に何ですか? – horrorfan

+0

return json array ..(json_encode($ response_array)) –

+0

質問は、電子メールを送信することで、データベースクエリを作成しないことです。これは、カットアンドペーストしたランダムな一般的な例です。また、AJAX APIのIMOでは、DB呼び出しが失敗した場合、文字列だけでなく、HTTPステータスエラーが返され、要求が成功したと見なされるべきです。 – ADyson

関連する問題