Извините за задавание основного вопроса как это, но я читал на этом в течение нескольких часов теперь, и примеры не имеют смысла мне в контексте способа, которым мой массив.. Я смог передать это от своей стороны сервера (cakephp) к JavaScript (я использую jQuery), но после этого, я потерян относительно того, как использовать данные.. Я пытался просто показать его с помощью предупреждения, но это дает вывод как "объектный Объект", и это - все..
Это - массив в качестве примера, который я имею:
Array (
[0] => Array ( [Uiemail] => Array ( [uiemail_id] => 2 [divid] => upd1 [width] => 200 [height] => 200 [leftpos] => 122 [toppos] => 122 [cssgroup] => 1 [colortop] => [colorbottom] => [colorborder] => [borderwidth] => [zindex] => ) )
[1] => Array ( [Uiemail] => Array ( [uiemail_id] => 3 [divid] => upd2 [width] => 200 [height] => 200 [leftpos] => 333 [toppos] => 444 [cssgroup] => 1 [colortop] => [colorbottom] => [colorborder] => [borderwidth] => [zindex] => ) )
[2] => Array ( [Uiemail] => Array ( [uiemail_id] => 4 [divid] => upd3 [width] => 200 [height] => 200 [leftpos] => 555 [toppos] => 466 [cssgroup] => 1 [colortop] => [colorbottom] => [colorborder] => [borderwidth] => [zindex] => ) )
)
Править:
Массив является способом, которым это - как это - вывод от базы данных Cakephp, ДОБИРАЮТСЯ (эквивалент cakephp этого).
Это имеет 3 массива, первое является "родительским массивом" и содержит [1], [2], [3], которые похожи на автоинкрементный идентификатор для 2-х многоярусных антенн.
2-й уровень имеет массив, который содержит 3-е, в эту секунду действительно не содержит данных кроме 3-го массива (ее сделанный как это cakephp начиная с его представления таблицы базы данных)
Так, 3-я многоярусная антенна имеет все данные, в которых я нуждаюсь, однако я также хотел бы использовать первый идентификатор уровня
В PHP К ОТДЕЛЬНОЙ ЧАСТИ ДАННЫХ ИЗ ЭТОГО МАССИВА ПОЛУЧАЮТ ДОСТУП КАК ТАКОВАЯ:
$arrayline = [0]['Uiemail']['toppos'];
Вот некоторый JavaScript, который я попробовал, который не работал (json, имя массива):
$(json).each(function() {
alert(this.text)
});
});
Спасибо за любой совет его просто, что мой массив является вложенным массивом (как его от вызова базы данных) и кажется, что большинство примеров не идет это глубоко, которое ведет меня к беспорядку.
Ассоциативный массив в PHP (т.е. со значимыми ключами, такими как ваш 'uiemail_id') станет объектом в нотации JSON. Даже массив, который не является точно 0-индексированным и непрерывным, также станет объектом. (т.е. массив с ключами 0,1,2
будет представлять собой массив, ключи 1,2,3
или 0,2,3
будут представлять собой объект.
Если вы обращаетесь к значению в PHP следующим образом:
$arrayline = $array[0]['Uiemail']['toppos'];
Доступ к результирующей структуре в js будет таким:
arrayline = jsonvar[0].Uiemail.toppos;
Включение firebug в firefox, с точками останова, позволяет вам легко проверить любую переменную, доступную в данный момент, в свое удовольствие, что делает отладку намного проще, чем обычный стандартный PHP способ просто сбросить обозначения переменных в stdout (т.е. printr
/ var_dump
'ы).
Я не совсем понимаю вашу нотацию массива ... но я предполагаю, что представление в json / javascript будет следующим:
[
[[2, 'udp1', 200, 200, 122, ....]],
[[3, 'udp2', 200, 200, 333, ....]],
[[4, 'udp3', 200, 200, 555, ....]]
]
Когда вы передаете массив в json, индекс ' имена не передаются.
Если это структура, то может получиться что-то вроде этого:
$.each(json, function(index, element){
$.each(element, function(index, sub){
alert(sub);
});
});
Попробуйте следующее:
$.each(json, function(index, element){
alert(element);
});
если json
- это ваш объект javascript
, который (надеюсь) уже был проанализирован как json
, вы не можете вызвать на нем функцию конструктора jQuery
и ожидать, что она будет работать вот так.
Используйте вспомогательную функцию $. Each ()
для перебора объекта с помощью jQuery.
Если вы все еще получили [объект Object]
в качестве предупреждения, это потому, что эти субэлементы
являются массивами
или реальными объектами
сами по себе, так что копать нужно глубже. Хорошим подспорьем являются FireBug
и console.dir ()
Ссылка: $. Each ()