2013-02-11 85 views
0

我有一個AJAX請求,基本上查詢數據庫,然後將數據發佈回JS,但是我無法打印單個數據位。單獨打印JSON數據

我的代碼如下:

$.ajax({ 
      type: 'POST', 
      url: '_process/offerrespres.php', 
      dataType: 'json', 
      data: { 
       msgid: msgid, 
       usrid: usrid 
      }, 
      success: function(){ 
       console.log(JSON.parse(data.pro_name)); 
       console.log(data.accept_decline); 
      } 
     }); 

的PHP:

<?php 
include_once 'connect.php'; 
if ($_POST) { 
$msgid = mysql_escape_string($_POST['msgid']); 
$usrid = mysql_escape_string($_POST['usrid']); 
$getmsgq = mysql_query("SELECT * FROM booking_requests WHERE receiver_id = '$usrid' AND msg_id = '$msgid'"); 
$getmsg_info = mysql_fetch_array($getmsgq); 
$data['success'] = true; 
$data['date_sent'] = $getmsg_info['date_sent']; 
$data['pro_name'] = $getmsg_info['pro_name']; 
$data['accept_decline'] = $getmsg_info['accept_decline']; 
} 
header("Content-Type: application/json", true); 
echo json_encode($data); 
mysql_close(); 
?> 

正如你可以看到我已經試過這樣:

console.log(JSON.parse(data.pro_name)); 
console.log(data.accept_decline); 

在控制檯中的錯誤說「數據未定義」。 PHP文件的輸出是正確的,它應該如何,我不能打印一個單一的數據。

回答

3

回調函數不接受返回的數據作爲參數

讀取success: function(){行應該是success: function(data){

而且,不需要在調用header("Content-Type: application/json", true);true。此功能的默認操作是替換標題,因此已暗示true。只有當你不想取代以前的Content-Type時,這個論點纔是必要的。對你的代碼沒有影響,只是一個提示。

+0

謝謝 - 另一個簡單的事情。工作過一種享受。此外,data.pro_name正常工作(沒有JSON.parse) – 2013-02-11 13:32:35

+0

@Steve_M不客氣。如果解決了您的問題,請將答案標記爲已接受,以便其他人知道該問題已得到解答。 – 2013-02-11 13:33:15

0

您沒有在成功函數中指定數據變量。 它應該是:

success: function(data){ 
    console.log(JSON.parse(data.pro_name)); 
    console.log(data.accept_decline); 
}