将PHP数组传递给JAVASCRIPT(问题)

时间:2017-08-30 00:47:17

标签: javascript php html arrays

似乎有一些奇怪的问题。 我正在尝试将php数组传递给js,我已经完成了。我可以像这样显示数组大小

document.getElementById("test").innerHTML = (jarr.length);

并且它工作得很好,但是,当我尝试在所述数组中显示一个值时,它会显示object Object 奇怪的是,如果我去尝试读取未存储的值,例如jarr [234]它说未定义因为没有存储值,所以我知道正在传输一些数据。

任何帮助?

编辑:这是我如何将数组传递给js

var jarr = <?php echo json_encode($testing); ?>;

编辑:我忘了在复制之前删除解析部分,我之前正在进行实验。

2 个答案:

答案 0 :(得分:0)

您应该能够直接使用jarr而无需解析它,例如:

document.getElementById("test").innerHTML = jarr.length;
document.getElementById("first_element").innerHTML = jarr.length > 0 ? jarr[0] : "empty array";

如果您正在执行上述操作并且元素显示为object Object,则表示您在数组中存储对象而不是基本数据类型。所以也许尝试类似下面的内容来生成这些对象的漂亮字符串表示(注意这是显示它们所需的,但不是直接在JavaScript代码中使用它们):

document.getElementById("first_element").innerHTML = jarr.length > 0 ? JSON.stringify(jarr[0]) : "empty array";

答案 1 :(得分:0)

克里斯说什么解决了这个问题!

“显示整个数组:document.getElementById(”test“)。innerHTML = JSON.stringify(jarr);要显示单个字符串:document.getElementById(”test“)。innerHTML = jarr [0]; - Chris G 7分钟前 “ 无论出于何种原因,添加(stringify)修复它为我。 一个例子

document.getElementById("test").innerHTML = JSON.stringify(jarr[2].title);