2014-04-12 49 views
-1

上的意外标记错误我正在构建一个网页,从数据库中检索一系列纬度和经度,然后将这些标记显示为谷歌地图上的标记。这一切都工作正常,除了我收到一个未捕获的SyntaxError:意外的令牌<在JavaScript中打开php标记。任何人都可以看到为什么我得到这个错误,并提供一种方法来通过它?<?php

这里是有问题的代码:

<script type="text/javascript"> 
//<![CDATA[ 
var map; 
var bounds = new google.maps.LatLngBounds(); 
    function initialize() { 
    var mapOptions = { 
     center: new google.maps.LatLng(-34.397, 150.644), 
     zoom: 8 
    }; 
    map = new google.maps.Map(document.getElementById("map-canvas"), 
     mapOptions); 
    } 

//HERE'S WHERE THE ERROR OCCURS 
<?php 
    while ($row = $results->fetch_array()) 
    echo "addMarker(".$row['latitude'].", ".$row['longitude'].", ".$row['time'].", map);"; 
?> 
    function addMarker(lat, lng, time, map) { 
     var latLng = new google.maps.LatLng(lat, lng); 
     var marker = new google.maps.Marker({ 
      position: latLng, 
      map: map, 
      draggable: false, 
     }); 

     bounds.extend(latLng); 

     var contentString = 'Time: ' + time + '\n' + 'Latitude: ' + lat + '\n' + 'Longitude: ' + lng; 

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

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

     return marker; 
    } 

    map.fitBounds(bounds); 
    google.maps.event.addDomListener(window, 'load', initialize); 
    //]]> 
</script> 

回答

2

这是因为CDATA这需要每一个字符字面。因为解析器解释<作为新XML元素的开始

<?php将产生错误。

+0

好吧,我试图做不到?或者有没有办法解决这个问题? –

+0

你不能混合服务器和客户端保存PHP数据到一个HTML元素,并从那里使用JavaScript读取它 – meda