【发布时间】:2016-05-31 18:27:23
【问题描述】:
我正在开发一个虚构的事件管理网站。在这个站点上,我使用 XML 从我的数据库中获取信息,将纬度和经度值输入谷歌地图,以便在世界各地创建各种标记。
创建标记的代码:
var infoWindow = new google.maps.InfoWindow;
// Change this depending on the name of your PHP file
downloadUrl("../php/phpsqlajax_genxml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("eventName");
var series = markers[i].getAttribute("eventSeries");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("eventLat")),
parseFloat(markers[i].getAttribute("eventLong")));
var html = name + "<br>" + series + "<br>" + "test";
var marker = new google.maps.Marker({
map: map,
position: point
});
bindInfoWindow(marker, map, infoWindow, html);
}
});
}
function bindInfoWindow(marker, map, infoWindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(map, marker);
});
}
function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
当您单击任何标记时,会弹出一个小的“信息窗口”,说明事件名称和事件系列。
有没有办法让我在窗口底部添加一个 html 链接而不是 test?我想做的是让它成为一个使用 php 生成的 html 链接,类似于:
<?php
$queryEvents = "SELECT * FROM events GROUP BY eventStart DESC";
$resultEvents = $mysqli->query($queryEvents);
while($rowEvents = $resultEvents->fetch_assoc()){
echo "<tr>";
echo "<td>{$rowEvents['eventName']}</td>";
echo "<td><a href=\"../php/viewEvent.php?eventID={$rowEvents['eventID']}\">View</a></t
d>";
echo "<td><a href=\"edit.php?eventID={$rowEvents['eventID']}\">Edit</a></td>";
echo "<td><a href=\"delete.php?eventID={$rowEvents['eventID']}\">Delete</a></td>";
echo "</tr>";
}
?>
它将采用eventName 值并使用其ID 的post 值来生成另一个显示事件信息的外部php 页面。这可能吗?
【问题讨论】:
标签: javascript php jquery google-maps google-maps-markers