2013-05-06 76 views
0

我正在使用以下jQuery代碼將表單數據發送到PHP處理腳本,該腳本要麼在數據庫中輸入新列表或更新現有列表。mail()阻止JSON響應

該網站列出發佈船隻及遊艇。它的工作很好,但現在客戶希望在新船上市時收到電子郵件通知。我將代碼添加到了PHP處理腳本中,但是如果由於某種原因使用mail(),它會阻止成功函數在下面的jQuery代碼中工作。

mail()函數是唯一影響它的函數。如果我評論這條線,它再次運作。

發生了什麼的任何想法?

$.ajax({ 
     type: "POST", 
     url: "scripts/listing_form_json_exec.php", 
     dataType: 'json', 
     data: JSON.stringify(dataString), 
     success: function(data) { 
      var yacht_id = (data); 
      $('#manage_images_link').attr('href', 'manage_images.php?yacht_id=' + yacht_id);     
      $('input[name=yacht_id]').val(yacht_id); 
      $('img.saved').show(); 
      $('img.saved').fadeOut(3000); 
      $('div#button_frame').show(); 
      $('#errors_container').html(''); 

     } 
    }); 

編輯

PHP腳本很長,但這裏是有問題的部分

$_SESSION['SESS_YAUCHT_ID'] = $yacht_id; 
echo json_encode($yacht_id); 

if (isset($message)) { 
    //mail($to, $subject, $message, $headers); 
} 

我試圖把mail()功能在不同的地方,但無論在哪裏我把它同樣的事情發生。以上我已將mail()函數註釋掉,並且所有工作都正常。如果我取消註釋,腳本停止工作。

+3

顯示PHP腳本。這可能會打印出一個錯誤,這會干擾JSON。 – Barmar 2013-05-06 20:30:33

+0

此外,請檢查您的服務器錯誤日誌以查看mail()調用中的PHP錯誤。 – 2013-05-06 20:31:22

+0

如果您正在測試它,您是否在服務器或本地主機上運行了正在運行的郵件程序? – adeneo 2013-05-06 20:34:48

回答

0

嘗試:

$_SESSION['SESS_YAUCHT_ID'] = $yacht_id; 
echo json_encode($yacht_id); 

if (isset($message)) { 
    if(@mail($to, $subject, $message, $headers)){ 
      //ok 
    } else { 
      //error 
    } 
} 
0

事實證明,因爲我是在本地測試,它沒有連接到郵件服務器,一旦我 上傳到一切正常的服務器。

感謝您的建議,事實證明這是愚蠢的。