我正在尝试将一个城市的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
,其他函数没有传递变量。
我需要能够传递源中显示的变量。
答案 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>