Есть объект json такого вида:
{
"1":{"id":"1","price":"60","qty":"56"},
"4":{"id":"4","price":"85","qty":"23"},
"2":{"id":"2","price":"53","qty":"11"}
}
Это возврат $.post из обработчика на PHP.
Как вывести каждую строку отдельно циклом?
И for пробовал, и for..in.
Ключ — число, и из-за этого тоже загвоздка у меня. Как обратиться к price при id=4
?
Пример итерации и получение значения по ключу
http://codepen.io/anon/pen/yejeXX
var jsonData = {"1":{"id":"1","price":"60","qty":"56"}, "4":{"id":"4","price":"85","qty":"23"}, "2":{"id":"2","price":"53","qty":"11"}}
$.each(jsonData, function(key, val) {
$('body').append($('<p>').text('key:'+key+', price:'+val.price));
});
$('body').append('<h4>Price for 4 key is: '+jsonData["4"].price+'</h4>')
Для $.post
укажите тип данных который принимает callback
$.post('action', function(data) {
console.log(data);
}, 'json');
Так. Есть у нас объект.
var test = {
"1":{"id":"1","price":"60","qty":"56"},
"4":{"id":"4","price":"85","qty":"23"},
"2":{"id":"2","price":"53","qty":"11"}
};
Отвечу на последний вопрос для начала.
Чтобы обратиться к элементу с числовым ключом - достаточно записать это так, как-будто вы обращаетесь к ассоциативному массиву по ключу. Т.е. к элементу с ключом 4 можно обратиться так: test[4]
Теперь к первому вопросу. Так как это не упорядоченный массив, где ключи начинаются с 0, то конечно проще сделать цикл for..in, который пробегает по всем элементам.
Он будет выглядеть просто:
for (var i in test) {
console.log(test[i]);
};
где i - это ключ, и, как следует из первой части моего ответа: test[i]
обращение к элементу объекта по ключу.
В итоге в консоли можно будет увидеть
Object {id: "1", price: "60", qty: "56"}
Object {id: "2", price: "53", qty: "11"}
Object {id: "4", price: "85", qty: "23"}
Ну и конечно пробегаясь в цикле, чтоб достать значения можно обращаться уже к ключам через привычную точку: test[i].id
или test[i].price
и так далее
А поему бы на BackEnd'e
этого перед выводом не сделать?
$elements = 5;
$results = array_chunk($results, $elements);
echo json_encode($results);
Оно Вам вернет масиив объекто, в котором находится по 5 элементов в каждом.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть код пагинации, код хороший, но есть нюанс, пагинация начинается со второй страницы, те
я интегрирую оплату с paypal express checkout по примеру https://devtools-paypalcom/integrationwizard/