2013-01-04 3 views
0

하여이 코드와 링크 getPower.php?year=2012&country=trJQuery.Ajax

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

와 같은 내 PHP 코드를 생산 뭔가를 받고, JSON을 문자열로 변환;

$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을 나눌 수 없다고 말하는 오류입니다. 그래서, 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