Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以使用ajax by php文件的google地图为例_Javascript_Php_Ajax_Google Maps - Fatal编程技术网

Javascript 以使用ajax by php文件的google地图为例

Javascript 以使用ajax by php文件的google地图为例,javascript,php,ajax,google-maps,Javascript,Php,Ajax,Google Maps,我想在我的主页上显示谷歌地图。此映射由以下函数生成: function addressCode(id,concatenadoAMostrarEnMapa) { var geocoder; var map; geocoder = new google.maps.Geocoder(); var latlng = new google.maps.LatLng(

我想在我的主页上显示谷歌地图。此映射由以下函数生成:

function addressCode(id,concatenadoAMostrarEnMapa) {
                var geocoder;
                var map;
                    geocoder = new google.maps.Geocoder();
                    var latlng = new google.maps.LatLng(-35.397, -60.644);
                    var mapOptions = {
                        zoom: 5,
                        center: latlng
                    }
                    map = new google.maps.Map(document.getElementById(id), mapOptions);

                    var address = concatenadoAMostrarEnMapa;
                    geocoder.geocode( {
                        'address': address}, function(results, status) {
                        if (status == google.maps.GeocoderStatus.OK) {
                            map.setCenter(results[0].geometry.location);
                            var marker = new google.maps.Marker({
                                map: map,
                                position: results[0].geometry.location
                            });
                        } else {
                            alert('Geocode was not successful for the following reason: ' + status);
                        }
                    }); 
                    google.maps.event.addDomListener(window, 'load',addressCode);  
                } 
此函数在主页面中定义。然后使用ajax调用php文件
take_publications
,在此文件中打印以下代码:

$comillas='"' ;
    echo " <div id='$mapa'";
    echo "onload='addressCode('$mapa','$concatenadoAMostrarEnMapa')' style='position:relative; width:400px; height:400px;'> </div>";
    echo "<script >addressCode('$mapa','$concatenadoAMostrarEnMapa');";
    echo "setInterval(";
    echo $comillas."addressCode('$mapa','$concatenadoAMostrarEnMapa')".$comillas;
    echo ", 10000 );
         </script >";
$comillas='”;
回声“;
echo“地址代码(“$mapa”,“$concatenadoAMostrarEnMapa”);";
回声“设置间隔(”;
echo$comillas.“地址代码(“$mapa”,“$concatenadoAMostrarEnMapa”)”$comillas;
回声”,10000);
";
$mapa
是一个带有标记的
id
的字符串,此变量用作函数
addressCode
中的参数
$concatenadoAMostrarEnMapa
是函数
addressCode
中用作参数的地址

问题是映射没有加载,或者说,ajax从php文件打印的脚本没有被执行

知道发生了什么吗


提前谢谢!

我没有确切的答案,但您可以在您的网站上使用此代码

<script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script>
function initialize() {
var map_canvas = document.getElementById('map_canvas');
var map_options = {
          center: new google.maps.LatLng(24.376202, 92.163641),
          zoom: 18,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        }
var map = new google.maps.Map(map_canvas, map_options)
    }
    google.maps.event.addDomListener(window, 'load', initialize);
</script>

<div id="map_canvas"></div>

函数初始化(){
var map_canvas=document.getElementById('map_canvas');
变量映射_选项={
中心:新google.maps.LatLng(24.376202,92.163641),
缩放:18,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
var map=new google.maps.map(地图画布,地图选项)
}
google.maps.event.addDomListener(窗口“加载”,初始化);

首先,
div
元素没有
onload
事件

如果确实希望在加载时执行脚本,请在
窗口中添加对
addressCode
的调用。onload
事件处理程序,如下所示:

window.onload = function(){
    //do anything here
};
echo "<div id='".$mapa."'";
echo "style='position:relative; width:400px; height:400px;'></div>";
echo "<script>";
echo "window.onload = function(){ ";
echo "addressCode('".$mapa."','".$concatenadoAMostrarEnMapa."');";
echo "setInterval(";
echo "addressCode, 1000, '".$mapa."','".$concatenadoAMostrarEnMapa."'";
echo ");";
echo "};";
echo "</script >";
然后,关于使用
setInterval
,如果您不需要IE<10个用户来查看您的网站,您可以:

setInterval(addressCode, 1000, "#yourmap", "nohablospanishenoughtounderstandthat");
否则,您应执行以下操作:

setInterval(function(){ addressCode("#yourmap","blabla"); }, 1000);
(请注意,我不支持使用
setInterval
,您最好使用
setTimeout

最后,停止使用register\u globals助手。它将永远不会帮助你,就像永远不会

"<div id='$mapa'"
毕竟,您的代码应该如下所示:

window.onload = function(){
    //do anything here
};
echo "<div id='".$mapa."'";
echo "style='position:relative; width:400px; height:400px;'></div>";
echo "<script>";
echo "window.onload = function(){ ";
echo "addressCode('".$mapa."','".$concatenadoAMostrarEnMapa."');";
echo "setInterval(";
echo "addressCode, 1000, '".$mapa."','".$concatenadoAMostrarEnMapa."'";
echo ");";
echo "};";
echo "</script >";
echo”“;
回声“;
echo“window.onload=function(){”;
echo“addressCode(‘“$mapa.”、‘“$concatenadoAMostrarEnMapa.”)和“;”;
回声“设置间隔(”;
echo“addressCode,1000”,“$mapa.”,“$concatenadoAMostrarEnMapa.”;
回声“;”;
回声“};";
回声“;

经过一整晚的搜索,我找到了解决方案。我必须评估ajax带来的所有Scriptp,因为我正在插入新Scriptp,但页面已经加载了所有内容


谢谢!

根据您的选择更改纬度和经度。如果您只有一张地图要显示,则此代码非常有用,但我有一个地图列表要显示。我有一个疑问-您的纬度/经度是否会因每次调用而有所不同?相同的调用,不同的参数谢谢您的解释!我会应用它,我是网页开发的新手。我试图使用您的代码,但它不起作用:/