[英]how to get the description inside the popup when i click on marker in a map
我有2个表,并且我已经提到了它的字段。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>
地图代码与检索数据并显示在一起。 如果有人知道,请帮助我解决这个问题。谢谢。
我建议检查数据库中“描述”的值。 是否会转义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>');
请注意,“不能”中的撇号现在结束了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约定对它们进行转义,以确保它们不会破坏任何内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.