我有两张桌子,我已经提到了它的字段, 1.事件:event_id,标题,位置,纬度,经度,地址,描述,链接 2. event_time:event_id,start_time,end_time,start_date,end_date,date
我已经给出了下面的地图代码,因为我在地图上点击特定标记时尝试获取弹出窗口。当我点击标记时它会显示弹出窗口,在弹出窗口中我们检索表格数据。 我所拥有的问题是,我能够从数据库中获取除描述之外的所有数据。但是当我试图检索描述时,地图不会显示出来。 下面还在代码中给出了从数据库中检索数据的方式。
<script src="http://maps.google.com/maps/api/js?v=3&sensor=false" type="text/javascript"></script>
<script type="text/javascript"><script language="javascript">
new google.maps.Size(32, 32), new google.maps.Point(0, 0),
new google.maps.Point(16, 32));
var center = null;
var map = null;
var markersArray = [];
var currentPopup;
var bounds = new google.maps.LatLngBounds();
function addMarker(lat, lng, info) {
var pt = new google.maps.LatLng(lat, lng);
bounds.extend(pt);
var marker = new google.maps.Marker({
position: pt,
icon: icon,
map: map
});
var popup = new google.maps.InfoWindow({
content: info,
maxWidth: 500,
});
google.maps.event.addListener(marker, "click", function() {
if (currentPopup != null) {
currentPopup.close();
currentPopup =null;
}
popup.open(map, marker);
currentPopup = popup;
});
google.maps.event.addListener(popup, "closeclick", function() {
currentPopup.close();
currentPopup = null;
});
}
function initMap() {
map = new google.maps.Map(document.getElementById("map1"), {
center: new google.maps.LatLng(12.972352762582736,77.59734949737549),
zoom:60,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR
},
navigationControl: true,
navigationControlOptions: {
style: google.maps.NavigationControlStyle.SMALL
}
});
<?
$query=mysql_query("select * from events join event_time on (events.event_id=event_time.event_id) where events.isapproved='Y'");
while ($row = mysql_fetch_array($query))
{
$title=$row['title'];
$location=$row['location'];
$sdate=$row['start_date'];
$edate=$row['end_date'];
$stime=$row['start_time'];
$end_time=$row['end_time'];
$lat=$row['latitude'];
$lon=$row['longitude'];
$address=$row['address'];
$date=$row['date'];
$de=$row['description'];
$link=$row['link'];
echo ("addMarker($lat,$lon,'$stime ".to."$end_time<br/><br/><b>$title</b><br/><br/>$address<br/><br/>$de<br/><a>$link</a>');\n");
}
?>
center = bounds.getCenter();
map.fitBounds(bounds);
}
</script>
地图代码和检索数据并将其显示在一起。 如果有人知道,请帮我解决这个问题。提前谢谢。
答案 0 :(得分:0)
我建议在数据库中检查Description的值。是否有任何Javascript特殊值转义的字符?
例如,假设一条记录的Description值为: 你找不到比这个好的派对!
如果您在上面的addMarker行中将其替换为$ de,并且仅保留所有其他变量,则生成的Javascript行为:
addMarker($lat,$lon,'$stime to $end_time<br/><br/><b>$title</b><br/><br/>$address<br/><br/>You can't find a better party than this one!<br/><a>$link</a>');
请注意,“can not”中的撇号现在结束了Javascript字符串。 Javascript解释器看到的代码如下:
addMarker($lat,$lon,'$stime to $end_time<br/><br/><b>$title</b><br/><br/>$address<br/><br/>You can'
t find a better party than this one!<br/><a>$link</a>');
第一行是不完整的陈述,第二行以引号之外的$ de值的第二部分开头。
通常,几乎所有变量值都将首先解释为Javascript,然后解释为HTML。因此,您应该根据HTML约定和Javascript约定来转义它们,以确保它们不会破坏任何内容。