使用Perl的Javascript Forloop不适用于Google Maps API来创建标记

使用Perl的Javascript Forloop不适用于Google Maps API来创建标记,javascript,perl,google-maps-api-3,Javascript,Perl,Google Maps Api 3,我是perl和javascript的新手,正在尝试通过perl数组运行javascript for循环,以便将标记插入GoogleMaps实例。创建映射并运行for循环,但插入了5个相同的标记,因为循环似乎没有正确运行。有没有更好的方法在javascript中访问此数组 @latlongarray = (0,0,20,20); $length = @latlongarray; { print <<HTML; <html> <head> <script

我是perl和javascript的新手,正在尝试通过perl数组运行javascript for循环,以便将标记插入GoogleMaps实例。创建映射并运行for循环,但插入了5个相同的标记,因为循环似乎没有正确运行。有没有更好的方法在javascript中访问此数组

@latlongarray = (0,0,20,20);
$length = @latlongarray;

{
print <<HTML;
<html>
<head>
<script type="text/javascript"
      src="http://maps.googleapis.com/maps/api/js?&sensor=true">
    </script>

<script type="text/javascript">
var map ;
  function initialize() {
    var latlng = new google.maps.LatLng(0,0);
    var myOptions = {
     zoom: 2,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP // can be SATELLITE  ,HYBRID,          ROADMAP     or TERRAIN
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
{

var i;
for (i=0;i<=8;i=i+2)
{
var marker = add_marker($latlongarray[i],$latlongarray[i]); 
marker.setMap(map);
    }
    }

 }
  </script>
   <script type="text/javascript">
  function add_marker(lat,lng,title,box_html) {

    var infowindow = new google.maps.InfoWindow({
        content: box_html
});

var marker = new google.maps.Marker({
      position: new google.maps.LatLng(lat,lng),
      map: map,
      title: title
});

google.maps.event.addListener(marker, 'click', function() {
  infowindow.open(map,marker);
});  

  return marker;
 }
</script>

<title>Reverse IP Lookup & Locate</title>
</head>
 <body onload="initialize()">
   <div id="map_canvas" style="width:80%; height:80%"></div>
 </body>
HTML
exit;
}
@latlongarray=(0,0,20,20);
$length=@latlongarray;
{

打印Perl是服务器端。它在Javascript之前执行。Perl只输出HTML和Javascript,一旦输出HTML和Javascript,Javascript就不知道Perl变量


您可以在Perl中创建一个循环,输出适当的
add_marker()
Javascript代码,或者您可以输出一个Javascript数组,然后像现在这样使用Javascript循环。您将永远无法从Javascript循环中引用Perl的数组索引。

正如Cfreak指出的那样,您将Perl和Javascript代码混在一起。我最近在这篇文章中回答了一个非常类似的问题。

您不应该得到在你发现它不起作用之前,你几乎要写这么多的代码了。总是从一些简单的代码开始,让它起作用,然后添加到代码中,一点一点地测试它。大量未测试的代码可能有多个bug,很难知道在代码中的什么地方可以找到修复方法。