【问题标题】:How to pass an array from a php page to a js page? [duplicate]如何将数组从 php 页面传递到 js 页面? [复制]
【发布时间】:2013-08-26 21:13:49
【问题描述】:

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

[0] => 数组 ( [id] => 22 [纬度] => 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>

【问题讨论】:

  • 方法 2 应该可行。
  • 另外,learn how to debug JavaScript。也许控制台会给你一个线索,为什么它“不起作用”。
  • 虽然方法 2 应该有效,但它并不正确。使用 AJAX 从服务器页面检索数组,它更干净,并且您将 php 与 js 文件分离。

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


【解决方案1】:

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

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

【讨论】:

  • 这可能行不通,因为数组的第一个元素是数组本身。所以echo implode(', ', $myArray); 将导致字符串"Array""Array, Array" 如果有多个。
【解决方案2】:
<?php echo json_encode($myArray) ?>

应该可以正常工作。打开一个开发控制台,看看 JS 解释器对输出的代码有什么看法。

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2022-09-26
      • 2017-01-25
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      • 2017-02-02
      • 1970-01-01
      相关资源
      最近更新 更多