2013-05-25 25 views
0

我的Ajax代碼是:阿賈克斯形式在HTML中並不返回

$.ajax({ 
     type: "post", 
     dataType: "json", 
     url: "contact.php", 
     data: $("form").serialize(), 
     success: function(data) { 

      if(data.nameValidate == true && data.emailValidate == true && data.messageValidate == true) { 
       $("form").fadeOut("fast", function() { 
        $("#contact").append('<p class="sent">' + data.success + '</p>').fadeIn("slow"); 
       }); 
      }; 

     } 
    }); 

我必須補充什麼mail.php的呼應一部分給在HTML一條成功的消息。 PHP正在發送郵件,但沒有給ajax成功消息。

我試圖把東西放在這裏,但沒有任何工作。我寫了一些html代碼,如echo "<p>.....</p";,但它顯示在一個空白頁面。

<?php 
    $isim=$_POST['name']; 
    $email=$_POST['email']; 
    $konu=$_POST['subject']; 
    $mesaj=$_POST['comments']; 
    $telefon=$_POST['phone']; 

    require_once("class.phpmailer.php"); 

    $mail = new PHPMailer(); 
    $mail->IsSMTP(); 
    $mail->Host = "mail.website.com"; 
    $mail->SMTPAuth = true; 
    $mail->Username = "[email protected]"; 
    $mail->Password = "*******"; 
    $mail->From = "[email protected]"; 
    $mail->Port = 587; 
    $mail->FromName = " Iletisim Formu"; 
    $mail->AddAddress("[email protected]","[email protected]"); 
    $mail->Subject = "'".$isim."' adli kisiden mesajiniz var."; 
    $mail->IsHTML(true); 
    $mail->Body = 'Isim: '.$isim. 
     "<br/><br/>"."e-Mail: ".$email. 
     "<br/><br/>"."Telefon: ".$telefon. 
     "<br/><br/>"."Konu: ".$konu. 
     "<br/><br/>"."Mesaj: ".$mesaj; 

    if($mail->Send()) 
    { 
      // I try to put something here but nothing is working. I Write some html codes like echo "<p>.....</p"; but it showed them in a blank page. 
    } else { 
     echo '<font color="#F62217"><b>Bir Hata Oluştu. Lütfen Telefonla Ulasmayı Deneyiniz.</b></font>'; 
    } 

?> 
+1

嘗試提醒( 「somethink」);檢查是否執行成功函數 – DmitryK

+0

你說你的PHP沒有返回消息,所以你可以包含你的PHP嗎? – Silox

+0

我想 - mail.php必須返回一些data.nameValidate爲1(成功),但我不知道如何去做 – user2420902

回答

1

您需要構建數據在PHP 下面應該工作wiuth你的JavaScript/jQuery的

if($mail->Send()) 
{ 
    $data['nameValidate'] = true; 
    $data['emailValidate'] = true; 
    $data['messageValidate'] = true; 
    $data['success'] = 'Oh it\'s working'; 
} else { 
    $data['fail'] = '<font color="#F62217"><b>Doh</b></font>'; 
} 
echo json_encode($data); 

你的JavaScript也更改爲:

if(data.nameValidate == true && data.emailValidate == true && data.messageValidate == true) { 
    $("form").fadeOut("fast", function() { 
     $("#contact").append('<p class="sent">' + data.success + '</p>').fadeIn("slow"); 
    }); 
}else{ 
    if(typeof(data.fail)=="string"){ 
     $("#contact").append('<p class="sent">' + data.fail + '</p>').fadeIn("slow"); 
    } 
} 
+0

謝謝!這是工作 – user2420902

0

您應該創建一個數組或你想回到阿賈克斯成功的功能和使用PHP函數json_encode它編碼的數據的對象。