Всем привет! Помогите разобраться, почему javascript считает все значения массивов внутри другого массива как undefined? т.е. при использовании этой функции: Код (Text): for (var prop in obj[6]) { console.log("o." + prop + " = " + obj[6][prop]); } выводит типа этого: Код (Text): id => undefined, parent_id => undefined Куда копать? Вот то что получается при json_encode() Код (Text): {"6":{"id":"6","parent_id":null,"code":"height","status":"public","name":"\u0420\u043e\u0441\u0442\u043e\u0432\u043a\u0430","type":"varchar","selectable":"1","multiple":"1","count":"5","sort":3,"values":{"37":"164-170","38":"170-176","39":"176-182"},"selected":0},"3":{"id":"3","parent_id":null,"code":"size","status":"public","name":"\u0420\u0430\u0437\u043c\u0435\u0440","type":"varchar","selectable":"1","multiple":"1","count":"13","sort":4,"values":{"2":"39","4":"41","5":"42"},"selected":0}}
Люди! Аууу! Помогите! Я уже голову сломал, пытаясь выяснить почему js выдает null после применения функции jquery.parsejson(), при этом переданные данные успешно прошли тест на валидность. Вот код: Код (Text): var fs = jQuery.parseJSON(<?php json_encode($fs) ?>); for (var prop in fs) { console.log("o." + prop + " = " + fs.prop); }
ну вообще-то ты можешь просто приравнять, если я не ошибаюсь. Во-вторых json_encode() возвращает строку, её надо выводить. Ты что, не заглядывал в исходный код? Код (Text): var fs = <?php echo json_encode($fs);?>;
Dragomaster, просто у вас вместо fs.prop надо писать fs[prop], ну и далее как-то выводить внутренности, например, вот тут функция dump в примере есть, под вашу проблему. Код (Text): <html> <head> <title>Test Javascript</title> <script src="http://code.jquery.com/jquery-latest.min.js"></script> </head> <body> Test javascript! <script language="Javascript"> function dump(obj) { var out = ""; if(obj && typeof(obj) == "object"){ for (var i in obj) { out += i + ": " + obj[i] + "\n"; } } else { out = obj; } return out; } var fs = jQuery.parseJSON('{"6":{"id":"6","parent_id":null,"code":"height","status":"public","name":"\u0420\u043e\u0441\u0442\u043e\u0432\u043a\u0430","type":"varchar","selectable":"1","multiple":"1","count":"5","sort":3,"values":{"37":"164-170","38":"170-176","39":"176-182"},"selected":0},"3":{"id":"3","parent_id":null,"code":"size","status":"public","name":"\u0420\u0430\u0437\u043c\u0435\u0440","type":"varchar","selectable":"1","multiple":"1","count":"13","sort":4,"values":{"2":"39","4":"41","5":"42"},"selected":0}}'); for (var prop in fs) { console.log("o." + prop + " = " + dump(fs[prop])); } </script> </body> </html>