javascript中的PHP数组json_encode不能正常工作

时间:2014-08-13 20:01:00

标签: javascript php arrays json

我有一个连接到mysql数据库的php页面,执行查询,将其结果存储为数组作为会话变量。

$_SESSION['array1']=$array1;

此变量由同一目录中的另一个php页面接收,如下所示:

session_start();
$array1= $_SESSION['array1'];

现在,在同一个php页面本身,我有一个javascript代码,打算访问这个$ array1并打印它的值。我在网上发现了类似的问题,并了解了json_encode功能,但无法完成。代码:

<script type="text/javascript">
var jsarray= <?php json_encode($array1); ?>;
document.write (jsarray[2]);   </script>

我只是想通过javascript打印数组的第二个索引但是还没能这样做。什么都没有显示出来。我可以看到我可以使用php在第二页上打印数组,但我需要javascript代码才能访问该数组。 如果我在javascript代码中为jsaraay提供值,例如:

var jsarray=[1,2,3,4,5];

我打印第二个索引,

document.write(jsarray[2]);

输出正确。我想以同样的方式访问php数组。请帮帮忙?

3 个答案:

答案 0 :(得分:0)

你需要echo json:

var jsarray= <?php echo json_encode($array1); ?>;

在线示例here

答案 1 :(得分:0)

如果我写

$array = [1, 2, 3];
print('<script> jsarray = ' . json_encode($array) . ';</script>');

然后我可以在我的javascript中访问jsarray

注意jsarray[2]将返回第3个索引,而不是第2个索引(索引从0开始)。 您还可以检查您的javascript控制台(Chrome + Firefox上的F12,然后选择控制台标签)以查找错误。

答案 2 :(得分:-1)

尝试这种方式:

<script>
var jsArray = ["<?php echo join("\", \"", $array1); ?>"];
alert(jsArray);
</script>

那应该有用