2013-01-04 45 views
0

讓我的PHP代碼生成類似,與此鏈接getPower.php?year=2012&country=tr的字符串轉換爲JSON,通過JQuery.Ajax

"Kasan":[[1,50]] 
"Tasan":[[1,51],[2,52],[3,52]] 
"Hasan":[[1,50]] 
"Masan":[[1,51],[2,52],[3,52]] 

有了這個代碼;

$row = $result->fetch_assoc(); 

echo json_encode($row['teamName']). ":" ; 

putPowerbyTeam($db,$row['teamID'],$year); //End with echo "json_encode($returnArray);" 

echo "\n"; 

而我托盤將它們轉換成JavaScript對象與此代碼;

$.ajax({type: "GET", 
url: "getPower.php", 
data: {year : "year", country : "country"}, 
success: function(JSONText) { 

    var lines = JSONText.split('\n'); 

    $.each(lines,function(lineNo,line) 
        { 
     var mainItems = line.split(':'); 
     chart.series[lineNo].name = jQuery.parseJSON(eval(mainItems[0])); 
     chart.series[lineNo].setData(jQuery.parseJSON(eval(mainItems[1])), true); 
    }); 

}, 
error: function (xhr, ajaxOptions, thrownError) { 
    alert(xhr.status); 
    alert(thrownError); 
} 

我是一個錯誤,說無法拆分空。所以,返回null,但我不能確定這javascrip代碼的任何部分。

那麼,爲什麼返回null? 我能做些什麼? 休息好嗎?

+0

是您的JSON甚至有效?粘貼輸出[在這裏](http://jsonlint.com/)。 –

回答

1

不要試圖用多個echojson_encode建立你的JSON。使用一個大關聯數組,然後使用echo json_encode(array)

事情是這樣的:

$array = array(); 

$teamName = $row['teamName']; 

$array[$teamName] = putPowerbyTeam($db,$row['teamID'],$year); // Return the array instead of doing json_encode($returnArray); 

echo json_encode(array); 
+0

如果我把所有的數據都帶到一個數組中,我對「chart.series [lineNo] .setData」有問題,它只需要數據,我應該分開名稱和數據。 – guemues

2

您可以使用dataType這樣的:

$.ajax({type: "GET", 
url: "getPower.php", 
data: {year : "year", country : "country"}, 
dataType: 'json', 
success: function(JSONText) { 

// do something