将PHP数组插入具有键值的JavaScript变量中

时间:2019-01-28 17:51:25

标签: javascript php arrays

首先,对不起,如果我的问题重复出现,但是我确实尝试了很多事情,但没有结果。 其次,我的问题是,在使用“ json_encode($ php_array)”并将其插入js变量后,输出为“ [object Object]”,而不是$ php_array。

在数组中使用键(错误结果)

Dim ids As Object, i As Long, val As String
Set ids = ie.document.querySelectorAll("tr[onClick*='custm_id']")

For i = 0 To ids.Length - 1
    val = ids.Item(i).getAttribute("onclick")
    Debug.Print Split(Split(val, "custm_id=")(1), Chr$(34))(0)
Next

不使用键(效果很好)

<script type="text/javascript">
// Some functions here
<?php
    $php_array = array('name'=>'joe','10','cat');
    $js_array = json_encode($php_array);
    echo "var javascript_array = ". $js_array . ";\n";
?>
alert(javascript_array); // Output is: [object Object]
</script

我希望输出为 [{“ name”:“ joe”,“ cat”}] ,但输出为 [object Object]

1 个答案:

答案 0 :(得分:0)

这是因为javascript alert()函数不是很聪明-它知道如何很好地输出数组,但是对于对象,它只是放弃而说“这是一个对象!”。

您可以像这样对对象进行漂亮的表示:

const prettyOutput = JSON.stringify(javascript_array, null, 4); //use indentation of 4 spaces
alert(prettyOutput);