2013-11-22 44 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