如何将数组从php页面传递到js页面?

时间:2013-08-23 18:14:06

标签: php javascript arrays google-maps-api-3 json

我有一个这种类型的php数组

[0] => Array
        (
            [id] => 22
            [lat] => 40.8434169
            [lng] => 11.409390199999962
        )

我希望将它传递给body-onload中的js文件。

我试过这些方法:

1) <body onload="addMarkers(<?php print_r($myArray) ?>)">
2) <body onload="addMarkers(<?php echo json_encode($myArray) ?>)">

但没有成功

编辑:我以这种方式解决了

<script type="text/javascript">
    var myJsArray = <?php echo json_encode($myArray) ?>;
</script>

3 个答案:

答案 0 :(得分:0)

我不确定你的addMarkers()函数是做什么的,但这可能有效:

<body onload="addMarkers(<?php echo implode(', ', $myArray); ?>)">

答案 1 :(得分:0)

<?php echo json_encode($myArray) ?>

应该工作得很好。打开一个开发控制台,看看JS解释器对输出代码的看法。

答案 2 :(得分:0)

你试过的第一个选项在任何情况下都不会工作。但是第二个选项有效并将json对象传递给你的函数

addMarkers(<?php echo json_encode($myArray) ?>)

如果这不起作用,则错误将归因于addMarkers函数不期望json对象作为其参数的原因。您可以在firebug控制台中看到此错误说明。您还可以检查函数定义以找出预期的参数。