2009-02-05 3 views
6

Я работаю над приложением, которое сделает POST-запрос ajax скрипту PHP на моем сервере. Сценарий будет запрашивать базу данных и возвращать строку записей в виде массива. (Один массив для каждой строки, содержащий такие элементы, как id, title и т. Д.). Затем я хочу использовать json_encode() для кодирования этого массива и передать его обратно в javascript, который будет использовать его для отображения записей.Как использовать JSON с JQuery?

1) Как я могу вернуть закодированную строку JSON в javascript? 2) Как будет цикл javascript через строки и получить доступ к их полям?

ответ

11

Чтобы получить JSON с jQuery, просто используйте jQuery.getJSON(). Кроме того, вы можете использовать любой другой инструмент AJAX, а затем просто eval() json, чтобы получить объект javascript.

Переберите массив, я обычно использую jQuery.each():

var recordList = yourMethodToGetRecordListWithAjax(); 

jQuery.each(recordList, function() 
{ 
    alert(this.Name); // For example 
}); 
+0

Там небольшая опечатка в вашем ответе, jquery.each должен быть $ .each. Кроме того, он работает хорошо :) –

+0

Это мой код: $ .getJSON ("getData.php", data, myFunctionToLoopThroughResults); –

+3

$ - ярлык для jQuery - я предпочитаю писать jQuery для «статических» вещей, подобных each(), и использовать $ для «нестатических» вещей, таких как запросы, поскольку я считаю, что это повышает читаемость. –

0

Вы можете вернуть JSON закодированный строку в JS по вторя его с типом содержимого приложения/JSON.

См. Выше ответ для остальных.

3

1) в сценарии PHP:

$return["foo"] = "bar"; 
$return["blah"] = "bleg"; 
print json_encode($return); 

2) в JavaScript:

  $.ajax({ 
        type: "POST", 
        url: URL, 
        cache:false, 
        data: values, 
        dataType:'json', 
        success: function(json) 
        { 
        var foo = json.foo; 
        if (json.blah == "bleg") 
        { 
         // do stuff 
        } 

        } // end success function 
       });  // end ajax call 
Смежные вопросы