我有home.php,标记头加载jquery另一页corpo_home.php:
<script type="text/javascript">
function Loadcorpo(P1){
$("#corpo").load("corpo_home.php?sq="+elecodice[P1]+"&an="+eleanno[P1]);
}
</script>
On corpo_home.php
我声明了api键和加载地图的功能:
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=>123456&sensor=false"></script>
<script type="text/javascript">
function initialize(P2){
var coordinate = P2.split(',')
alert("before");
var latlng = new google.maps.LatLng(coordinate[0], coordinate[1]);
alert("after");
var mapOptions = {
center: latlng,
zoom: 17,
mapTypeId: google.maps.MapTypeId.HYBRID
};
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
var marker = new google.maps.Marker({
position: latlng,
map: map,
title:""
});
}
});
</script>
当页面index.php加载时,我看到警告&#34;之前&#34;但不是&#34;&#34;。
你能帮助我吗?
答案 0 :(得分:1)
我发现了很多语法错误:
;
。});
时,您使用}
关闭了该功能。marker
变量在title:""
后});
关闭,因此后面的大括号不应该在那里。除此之外,我不明白为什么它不起作用。请显示您的来电地点initialize();
现在,请改用此代码:
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=>123456&sensor=false"></script>
<script type="text/javascript">
function initialize(lat, lng){ // edited on first edit
alert("before");
var LatLng = { // edited on first edit
lat: lat,
lng: lng
};
alert("after");
var mapOptions = {
center: latlng,
zoom: 17,
mapTypeId: google.maps.MapTypeId.HYBRID
};
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
var marker = new google.maps.Marker({
position: latlng,
map: map,
title: ""
});
}
</script>
- 编辑 -
好的,所以你用这个来调用函数:
<img onload="javascript:initialize('<?php echo $row_record['pzcoordi'];?>');" src="images/blank.gif"/>
首先,我会使用div
代替img
,但如果有效,那就没问题。我看到了传递参数然后在JavaScript上拆分的方法。很天才。但我看到你将参数作为字符串传递。这不起作用,因为API期望它们是整数。
为了更好地诊断,我很想看看你是如何构建下一个和之前的按钮,因为它们工作正常,但我会继续我的猜测。
我建议您传递2个参数,Lat
和Lng
坐标,要实现这一点,您需要在PHP中explode();
:
<?php
$array = explode(",", $row_record['pzcoordi']);
$lat = $array[0];
$lng = $array[1];
?>
<img onload="initialize(<?php echo $lat; ?>, <?php echo $lng; ?>)" src="images/blank.gif"/>
如果由于任何原因这不起作用,也许你可以用单引号包装参数来使它们成为字符串,但我不会依赖它。我知道explode();
返回字符串,但它们只是HTML和PHP的字符串,JavaScript会将它们作为整数,因为它们不会用单引号括起来。我希望这会有所帮助。
答案 1 :(得分:0)
感谢您进行语法更正。
我用这种方式调用inizialize():
<img onload="javascript:initialize('<?php echo $row_record['pzcoordi'];?>');" src="images/blank.gif" />
home.php上一个和下一个按钮,onclick corpo_home.php重新加载,从数据库读取坐标并显示地图。
第一个时间图没有加载,如果点击下一个按钮然后正确返回地图加载。