В PHP файле у меня есть следующая концепция:
// return assoc
$res = DBQUERY;
foreach ($res as $key => $value) {
$retval[$cnt] = array("id_enumeration" => $key, "display_value" => $value);
$cnt++;
}
echo json_encode($retval);
В результате успеха я попал в массив Firebug таких объектов:
[{"id_enumeration": 3602, "display_value": "Test1"}, {"id_enumeration": 3604, "display_value": "Test2"}, {"id_enumeration": 3605, "display_value": "Test3"}, { "id_enumeration": 3607, "display_value": "Test4"}, {"id_enumeration": 3610, "display_value": "Test5"}]
Я пытаюсь выполнить этот код, нажав:
success: function(data) {
// get array:
$.each(data, function(idx, obj) {
// get each object:
$.each(obj, function(key, value) {
console.log("Display value: " + value.display_value + " ID enumeration: " + value.id_enumeration);
});
});
}
Но переменные в console.log не определены. Как много объектов в массиве? Каков наилучший способ сделать это?
У вас есть obj
который представляет собой массив объектов, обладающий свойством display_value
, поэтому вы можете получить к нему доступ через obj.display_value
в первом $.each()
, нет необходимости в втором
$.each(data, function(idx, obj) {
console.log("Display value: " + obj.display_value + " ID enumeration: " + obj.id_enumeration);
});
Демо: скрипка
$.each(data, function(idx, obj) { console.log("Display value: " + obj.display_value + " ID enumeration: " + obj.id_enumeration); });
Все еще не определено.