У меня возникла проблема с передачей многомерного и ассоциативного массива от php до Javascript. Я конвертирую его с JSON, используя:
_SESSION = '<?php print json_encode($_SESSION) ?>';
Я также пробовал
_SESSION = '<?php print json_encode($_SESSION, JSON_PRETTY_PRINT) ?>';
_SESSION = $.parseJSON('<?php print json_encode($_SESSION) ?>');
оба из них дают мне такие ошибки, как: Uncaught SyntaxError: Неожиданный токен ILLEGAL.
Однако первый из них не дает мне никаких ошибок, и я могу получить к нему доступ в Javascript. Затем он выводит:
{"items":{"221163":{"CodeComplete":null,"Project":"Coding","Team":"Mail","TimeSpent":25","Children":[]}}, {"221165":{CodeComplete":null,"Project":"Coding","Team":"Batman","TimeSpent":"40","Children":[]}}
Я верю, что это как строка, так как _SESSION [0] выводит "{". Однако я хочу, чтобы это был массив или объект. Массив выглядит так в php:
_SESSION( "items" => array(
221163 =>
array( CodeComplete => null
Project => "Coding"
Team => "Mail"
Timespent => "25"
Children => array(
)
)
221165 =>
array( CodeComplete => null
Project => "Coding"
Team => "Stones"
Timespent => "40"
Children => array(
)
)
)
)
Я хочу иметь доступ к этому массиву так же, как я могу, в php (не litterary ofcorse), но _SESSION["items"]
или _SESSION.items
не определено как _SESSION
- это строка...
Любые идеи о том, что я делаю неправильно?
Так же, как @CD001 предложил в своем комментарии, я удалил '' из передачи так, чтобы это стало
_SESSION = <?php print json_encode($_SESSION) ?>;
вместо этого, и теперь все работает отлично, спасибо!
_SESSION = '<?php print json_encode($_SESSION) ?>';
... удалить апострофы так_SESSION = <?php print json_encode($_SESSION) ?>;