将PHP变量从.php传递到.js

时间:2016-02-24 15:56:54

标签: javascript php google-maps

我正在尝试将一个城市的Lat和Long传递给一个gmaps函数,在一个单独的文件中创建php变量。

gmaps.js:

function getMap(lat) {
    alert(lat);
}

main.php:

<div id="map" onload="getMap(<?php echo json_encode($GLOBALS['city']->lat); ?>)"></div>

当我查看页面来源时,我看到了这一点:

<div id="map" onload="getMap("51.713")"></div>

但警报显示undefined

.js文件链接到.php,其他函数没有传递变量。

我需要能够传递源中显示的变量。

2 个答案:

答案 0 :(得分:1)

尝试在html中使用单引号:

<div id="map" onload='getMap(<?php echo json_encode($GLOBALS['city']->lat); ?>)'></div>

答案 1 :(得分:1)

首先,你的报价搞砸了。解决这个问题的最简单方法是:

<div id="map" onload="getMap('<?php echo $GLOBALS['city']->lat); ?>')"></div>
但是,这不会解决你的问题。另一个问题是,您在onload上使用的是div,这实际上并不起作用。

如果你想要在div ID为map之后运行你的功能,那么你可以这样做:

<div id="map"></div>
<script type="text/javascript">
   function getMap(lat) {
       alert(lat);
   }

   getMap('<?php echo $GLOBALS['city']->lat); ?>');
</script>

或者,您可以等待整个页面加载后运行代码:

<div id="map"></div>
<script type="text/javascript">
   function getMap(lat) {
       alert(lat);
   }

   document.addEventListener("DOMContentLoaded", function(event) { 
       getMap('<?php echo $GLOBALS['city']->lat); ?>');
   });
</script>

无论如何,我认为你想做的事情是这样的:

<div id="map"></div>
<script type="text/javascript">
   document.addEventListener("DOMContentLoaded", function(event) {
       var map = new GMaps({
           div : '#map',
           zoom : 16,
           lat : <?php echo $GLOBALS['city']->lat); ?>,
           lng : <?php echo $GLOBALS['city']->lng); ?>
       });
   });
</script>