Получить значения из json_encode с помощью jQuery - PullRequest
2 голосов
/ 25 сентября 2011

Я вставил несколько (array) значений с json_encode в одну строку из таблицы базы данных, теперь хочу, чтобы они отображались как порядок с jquery.

Это вывод из моего кода PHP:

[{
    "guide": null,
    "residence": [{
        "name_r": "jack"
    }, {
        "name_r": "jim"
    }, {
        "name_r": "sara"
    }],
    "residence_u": [{
        "units": ["hello", "how", "what"],
        "extra": ["11", "22", "33"],
        "price": ["1,111,111", "2,222,222", "3,333,333"]
    }, {
        "units": ["fine"],
        "extra": ["44"],
        "price": ["4,444,444"]
    }, {
        "units": ["thanks", "good"],
        "extra": ["55", "66"],
        "price": ["5,555,555", "6,666,666"]
    }]
}]

хочу как (вывод):

jack
hello & 11 & 1,111,111
how & 22 & 2,222,222
what & 33 & 3,333,333,

jim
fine & 44 & 4,444,444

sara
thanks & 55 & 5,555,555
good & 66 & 6,666,666

Как это?

1 Ответ

2 голосов
/ 25 сентября 2011

Предполагая,

  • вы уже знаете, как сделать запрос ajax, который извлекает эту информацию из вашего PHP-скрипта
  • всегда есть один элемент в массиве верхнего уровня (если нет,Вы могли бы добавить еще один уровень итерации)
  • , выводя, вы имеете в виду доступ к соответствующим элементам - я вставил вызовы к console.log, но вы могли бы alert() или поместить в элемент DOM или любой другой

вы можете сделать что-то подобное в jQuery (вот пример скрипта без сетевой части. Вы увидите вывод в своей консоли)

var data = response[0]; //response is the data received by the jQuery ajax success callback
var residences = data.residence;
var residence_u = data.residence_u;

$.each(residences, function(index, val){
    var name = val.name_r;
    console.log(name);

    var info = residence_u[index]; //get the corresponding residence_u element

    $.each(info.units, function(index, val){
        var unit = val;
        var extra = info.extra[index];
        var price = info.price[index];
        console.log( val + " & " + extra + " & " + price);
    });
});
...