2012-06-08 2 views
1

Я новичок в JS ... У меня есть страница PHP с функцией JavaScript, которая вызывает вызов JSON на сервер базы данных. Эта функция JSON возвращает массив, который мне нужно проанализировать и что-то сделать. Я понимаю необходимость обратного вызова (в настоящее время получают неопределенные ошибки), но я смущен относительно фактического синтаксиса. Может ли кто-нибудь дать небольшое руководство?PHP & JSON - Функция обратного вызова

Вот моя JSON функция в PHP Страница:

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 подключается к базе данных, хватает recordset и помещает его в массив JSON. последняя строка, которая является

echo json_encode($arr); 

Я понимаю поток ASYM этого, и что мне нужна функция обратного вызова, чтобы огнь, когда данные поступают ... но я потерял в том, чтобы это произошло. Любые рекомендации будут оценены наиболее высоко.

+1

Это функция JavaScript. Функции не существуют в JSON, так как это формат обмена данными. Общий код выглядит «нормально», хотя вам, вероятно, не нужно использовать обратный вызов '.ready'. Выполняется ли функция? Какова ценность «данных»? Каковы «неопределенные» ошибки, которые вы получаете? –

+0

Что вызывает вызов API? это событие click? или при нагрузке? – solidau

ответ

1

Прежде всего, JSON - это формат, а не язык.

У вас уже есть функция обратного вызова

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

функция (данные) ваш обратный вызов, и данные ваши возвращенные данные из PHP, внутри него следует добавить код или что вы хотите сделать с данные.

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

$ .each будет цикл через ваши данные массива и вызвать UpdateGraph функции

0

Вашего возвращенного объект JSON (данные), должен также иметь отношения ключевого значения для каждого вложенного объекта внутри "данные". Для того, чтобы положить в простой фразе ... лечить 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); 
}); 

действительны

Смежные вопросы