2012-06-08 2 views
1

저는 JS 초보자입니다 ... JSON 호출을 데이터베이스 서버에 보내는 JavaScript 함수가있는 PHP 페이지가 있습니다. JSON 함수는 배열을 반환하는데,이 배열은 구문 분석하고 무언가를해야합니다. 콜백 (현재 정의되지 않은 오류가 발생 함)에 대한 필요성을 이해하고 있지만 실제 구문에 대해서는 혼란 스럽습니다. 누구든지 약간의 지침을 제공 할 수 있습니까?PHP & JSON - 콜백 함수

var GETDATA = function() 
    { 
    $(document).ready(function() 
    { 
    $.getJSON('api.php', function(data) 
     { 
    $.each(data, function(key, val) 
     { 
     UpdateGraph(val.x, val.y, val.z); 
     }); 
     }); 
    }); 
    };` 

** UpdateGraph 기능이 변수를 취하고 api.php 페이지가 데이터베이스에 연결

가하는 잡고 몇 가지 더 비즈니스 로직을 수행

다음은 PHP 페이지에서 내 JSON 기능입니다 레코드 세트를 만들고 JSON 배열에 저장합니다. 그 마지막 줄

echo json_encode($arr); 

내가이의 ASYM의 흐름을 이해하고, 나는 데이터가 수신 될 때 발생하는 콜백 함수를 필요 ...하지만 난이 일어날 수 있도록하는 방법에 잃었어요입니다. 모든 지침을 가장 높이 평가할 것입니다.

+1

JavaScript 기능입니다. JSON에는 데이터 교환 형식이므로 함수가 존재하지 않습니다. ".ready"콜백을 사용할 필요는 없지만 전체 코드는 "ok"로 보입니다. 함수가 실행됩니까? '데이터'의 가치는 무엇입니까? 당신이 얻는'정의되지 않은'오류는 무엇입니까? –

+0

무엇이 API 호출을 트리거합니까? 클릭 이벤트입니까? 또는로드시? – solidau

답변

1

우선 JSON은 언어가 아닌 형식입니다.

당신은 이미 콜백을 가지고

$.getJSON('api.php', function(data) 

기능 (데이터)가 콜백이며, 데이터는 당신이 당신의 코드 또는 당신이 그렇게하고 싶지는 추가해야 그 안에, PHP에서 반환 된 데이터입니다 자료. 당신의 데이터 배열과 UpdateGraph 전화 기능

0

반환 된 JSON 객체 (데이터)를 통해

$.each(data, function(key, val){ 
     UpdateGraph(val.x, val.y, val.z); 
}); 

$ .each 의지주기는 내부에 중첩 된 각 개체에 대한 키 값의 관계를 가져야한다 "데이터". ... 간단한 문구를 넣어 키/값 해시 맵과 같은 JSON 객체를 치료하기 위해

그래서 두 객체가 있다고 가정 : "데이터"

$.each(data.a, function(key, val){ 
     UpdateGraph(val.x, val.y, val.z); 
}); 


$.each(data.b, function(key, val){ 
     UpdateGraph(val.x, val.y, val.z); 
}); 

이 유효 내부 b를 객체 A와 객체를