2013-11-22 83 views
0

我正在嘗試從一個php頁面檢索數據以在一個flot圖表中使用。我在ajax調用中遇到問題,我無法弄清楚。來自php文件的Ajax調用

下面是一些我的PHP的:

//Sort data into groups for chart 
foreach($querieResult as $entry){ 
    if ($entry['GroupName'] == 'Blue'){ 
     $date = strtotime($entry['Date'] . ' UTC')*1000; 
     $BlueData[] = array($date, $entry['OverallAverageHourlyEpisodes']); 
    }  
} 
//Put all data into single array to pass to JS file 
$mergedData[]= array('label' => "Blue Team Data", 'data' => $BlueData); 
//JSON encode data for JS file 
echo json_encode($mergedData); 

,輸出:

[{"label":"Blue Team Data","data":[[1373500800000,"1.57"],[1381276800000,"12.89"],[1377475200000,"28.04"]]}]null 

這裏是我的ajax:

$.ajax({ 
    url:"getTeamPerformance.php", 
    method: 'GET', 
    cache: false, 
    dataType: 'json', 
    success: function(data){ 
     alert(data.label); 
     alert(data.data); 
    }, 
    error: function(errorGiven){ 
     document.write(errorGiven); 
    } 
}); 

我想看看如果數據傳遞通過這樣的成功,我只是有一個戒備。

當此運行,我得到的輸出:

[object Object] 

任何幫助,將不勝感激!

+0

嘗試'警報(JSON.stringify(數據));''或者更好地使用'console.log(data)' – PSL

+1

同意@PSL - 先記錄你的數據,看看它是什麼,我看到你的回調中有一個**數組對象,所以顯然'data.label'不起作用。你可能需要'data [0] .label' - 但是首先記錄它,這有很大的幫助。 – tymeJV

回答

0

可能是一個頭問題,你需要在echo輸出前指定它。

header('Content-type: application/json'); 

否則使用JSON.parse(response);

0

數據是一個數組,包含一個對象。

要訪問的對象使用data[0],爲拉布勒data[0].label

想知道如果null在到底是響應的一部分....如果這樣會導致無效的JSON解析錯誤

+0

null位於php結果的末尾。這可能是問題嗎? – user3019959

+0

不應該是json根外括號之外的任何內容。將repsonse粘貼到jsonlint.com,從來沒有看到它的謊言 – charlietfl