我有一個PHP嵌套數組存儲在變量$myArray
,下面是如何在var轉儲到瀏覽器後數組看起來像(它不是一個完整的輸出)。PHP數組轉換爲JSON - 未捕獲SyntaxError:意外的輸入結束
<?php var_dump($myArray); ?>
輸出:
array (size=4)
'id' => string '162' (length=3)
'content' => string 'Test content' (length=12)
'children' =>
array (size=16)
0 =>
array (size=4)
'id' => string '29208' (length=5)
'content' => string 'Test content 1' (length=14)
'children' =>
array (size=3)
...
1 =>
array (size=4)
'id' => string '29215' (length=5)
'content' => string 'Test content 2' (length=14)
'children' =>
array (size=1)
...
2 =>
array (size=3)
'id' => string '29220' (length=5)
'content' => string 'Test Content 3' (length=14)
讀取從JavaScript變量陣列如下:
<script type="text/javascript">
var myVar = JSON.parse('<?php json_encode($myArray) ?>');
</script>
返回以下錯誤在控制檯
Uncaught SyntaxError: Unexpected end of input
在調試代碼的同時,我做了以下操作:
創建一個新變量並在其中存儲一些JSON數據,然後JSON將其解析爲另一個變量,然後最終安慰輸出並正常工作。
<script type="text/javascript">
var x = '{"id":123,"content":"This is a test content"}';
var myVar = JSON.parse(x);
console.log(myVar);
</script>
輸出與控制檯的值的對象:
Object
content: "This is a test content"
id: 123
我在做什麼錯?
爲什麼JSON編碼,然後解析JS?爲什麼不照原樣打印?像:'var myVar = <?= json_encode($ myArray)?>;' – Rudie
Rudie是正確的,當以這種方式直接輸出到瀏覽器時,您不需要將JSON解析爲字符串。 – phpisuber01
[如何訪問JavaScript或jQuery中的PHP變量而不是<?php echo $ variable?>](http://stackoverflow.com/questions/1808108/how-to-access-php-variables-in- javascript-or-jquery-than-php-echo-vari) – user1596138