我需要一些帮助,因为我试图用PHP回调JavaScript函数。我创建了2个完美协作的类。在利用Google API的第一个中,我提取用户在我的表单上选择的城市的纬度和经度,然后我将这些值传递给第二个类,该类利用另一个API来显示该城市的天气预报服务。
我也希望添加Google地图,以此方式创建一个更完整的服务,显示所选城市的动态地图。
我注意到Firebug浏览器无法正确解析对象$ map的两个提到的属性,因为您可以自己轻松查看。 我真的不知道如何在标签内回调js功能,我需要达到我的目的。
我在这里使用PHP的简单回声在这里不起作用。
希望有人可以帮助我。 这是my page
这是我的代码中无效的代码:
/**
* Check for the real existence of the city, using the
* property $status of the instanced GeoLocalization class, here the object $map.
* This class exploits a Google API.
*/
if ( isset($missing) && empty($missing) && strlen($citta) > 1 && $map->status == 'OK' )
{
/**
* Use some properties of the object $map to show my user
* the chosen city and state in Italian.
* Show even the latitude and the longitudine.
* These values are those passed to the GeoWeather class.
*/
// show the location
echo '<ul id="display_location">' .
'<li class="rosso centra sottolineato grassetto">' . $map->formatted_address . '</li>' .
'<li>' . 'Latitudine: ' . $map->latitude . '</li>' .
'<li>' . 'Longitudine: ' . $map->longitude . '</li>' .
</ul>';
echo '<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true"></script>';
echo '<script type="text/javascript">
var map;
function initialize() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(<?php echo $map->latitude . ", " . $map->longitude; ?>)
};
map = new google.maps.Map(document.getElementById("googleStaticMap"), mapOptions);
}
</script>';
echo '<script type="text/javascript">initialize();</script>';
echo '<div id="googleStaticMap"></div>';
}
</body>
答案 0 :(得分:0)
您无法在PHP块中启动新的PHP块。
此:
echo '<script type="text/javascript">
var map;
function initialize() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(<?php echo $map->latitude . ", " . $map->longitude; ?>)
};
map = new google.maps.Map(document.getElementById("googleStaticMap"), mapOptions);
}
</script>';
应该是:
echo '<script type="text/javascript">
var map;
function initialize() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng('. $map->latitude . ','
. $map->longitude .')
};
map = new google.maps.Map(document.getElementById("googleStaticMap"),
mapOptions);
}
</script>';
其他问题:
你必须切换这两行的顺序(否则调用该函数时#googleStaticMap
是未知的):
echo '<script type="text/javascript">initialize();</script>';
echo '<div id="googleStaticMap"></div>';
<强> Additionaly:强>
#googleStaticMap
目前没有高度。您已将高度设置为100%,但只要#googleStaticMap
的父元素没有通过CSS设置高度,就不会产生任何影响。