2014-09-25 104 views
-1

我遇到問題,成功返回空數據。 這裏的一些代碼,成功返回空ajax

我已經檢查了PHP的郵件功能,它的正常工作

$("input[type=submit]").click(function(){ // перехватываем все при событии отправки 
    var form = $('#form'); // запишем форму, чтобы потом не было проблем с this 

    if (!error) { // если ошибки нет 
     var data = form.serialize(); // подготавливаем данные 
     $.ajax({ // инициализируем ajax запрос 
      type: 'POST', // отправляем в POST формате, можно GET 
      url: 'mail.php', // путь до обработчика, у нас он лежит в той же папке 
      data: $("#form").serialize(), // данные для отправки 
      dataType: 'html', 
      beforeSend: function(data) { // событие до отправки 
       form.find('input[type="submit"]').attr('disabled', 'disabled'); // например, отключим кнопку, чтобы не жали по 100 раз 
      }, 
      success: function(data){ // событие после удачного обращения к серверу и получения ответа 
       alert(data); 
       if (data['error']) { // если обработчик вернул ошибку 
        alert(data['error']); // покажем её текст 
       } else { // если все прошло ок 
        $('#thirdblock').addClass('block') 
        $('#secondblock .arrow2').addClass('block') 
       } 
      }, 
      error: function (xhr, ajaxOptions, thrownError) { // в случае неудачного завершения запроса к серверу 
       alert(xhr.status); // покажем ответ сервера 
       alert(thrownError); // и текст ошибки 
      }, 
      complete: function(data) { // событие после любого исхода 
       form.find('input[type="submit"]').prop('disabled', false); // в любом случае включим кнопку обратно 
      } 
     }); 
    } 

    return false; // вырубаем стандартную отправку формы 
}); 
+1

哪裏是php代碼? – Gowri 2014-09-25 10:55:29

+0

檢查瀏覽器控制檯,如果出現任何錯誤。 – shashank 2014-09-25 10:56:36

+0

什麼php代碼回聲? – 2014-09-25 10:57:03

回答

-1

這裏是PHP代碼

<?php 
if($_POST['submit']) { 
     // $_POST['title'] 
     $title = $_POST['name']; 
     $mess = 'Name: '.$_POST['name'].'<br> Phone: '.$_POST['phone'].'<br>Email:'.$_POST['email'].'<br>Where:'.$_POST['whenmap'].'<br>When:'.$_POST['dayst'].'<br>Textfield:'.$_POST['textfield'].''; 


     $to = $_POST['email']; 
     $to2 = '[email protected]'; 

     $headers= "MIME-Version: 1.0\r\n"; 
     $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
     $headers .= "From: test <[email protected]>\r\n"; 
     mail($to, $title, $mess, $headers); 
     mail($to2, $title, $mess, $headers); 

} 
?> 

我剛剛刪除的,如果($ _ POST [ '提交' ])和一切工作正常

+0

這應該是一個答案?或者你想澄清你的問題。 – 2014-09-25 15:05:37

0

在您的php代碼,如果郵件發送成功,你不輸出任何東西,所以ajax成功(數據) - 數據將是空的,tr Ÿ呼應的東西,如果成功和失敗

0

您需要更正你的PHP代碼:

<?php 
if($_POST['submit']) { 
     // $_POST['title'] 
     $title = $_POST['name']; 
     $mess = 'Name: '.$_POST['name'].'<br> Phone: '.$_POST['phone'].'<br>Email:'.$_POST['email'].'<br>Where:'.$_POST['whenmap'].'<br>When:'.$_POST['dayst'].'<br>Textfield:'.$_POST['textfield'].''; 


     $to = $_POST['email']; 
     $to2 = '[email protected]'; 

     $headers= "MIME-Version: 1.0\r\n"; 
     $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
     $headers .= "From: test <[email protected]>\r\n"; 

     if(mail($to, $title, $mess, $headers) && mail($to2, $title, $mess, $headers)){ 
       echo "1"; 
      }else{ 
       echo "Error."; 
      } 


} 
?> 

和你的js代碼是:

success: function(data){ // событие после удачного обращения к серверу и получения ответа 
       alert(data); 
        if (data != '1') { // если обработчик вернул ошибку 
         alert(data); // покажем её текст 
        } else { // если все прошло ок 
         $('#thirdblock').addClass('block') 
         $('#secondblock .arrow2').addClass('block') 
        } 
       }, 

我希望這將是幫助。