如何显示一个标记的更多详细信息?
How can I show more details of one marker?
我有:
标记是由表单提交创建的,表单包含邮政编码输入。下面的 javascript 将采用此邮政编码并在 google 地图上显示为标记。 (这是一个不同的页面)
page1.php(下面的代码)我有一个 php 数组,这个数组包含所有信息窗口数据, javascript 是创建地图、标记和信息窗口。
<?php
..............
$info= array();
foreach($details as $d) {
$info[] = "<div id='infoData'>".$d['name'].$d['quantity']."<button id='details' onclick='window.location.href= \\"page2.php\\"'>Detail</button>"."<div>";
}
//.........
?>
以上代码就是infoWindow上的所有内容。单击产品数组中的那个按钮将转到 page2.php
<script>
//...................
function init() {
var mapDiv = document.getElementById("map");
var mapOptions = {
center: new google.maps.LatLng(51.528308,-0.3817765),
zoom: 12,
mapTypeId: 'roadmap'
};
var map = new google.maps.Map(mapDiv, mapOptions);
///////////////add markers//////////
var addressArray = ("abc", "def","xxx"), infoArray = (<?php echo $i; ?>);
var geocoder = new google.maps.Geocoder();
for (var i = 0, j=addressArray.length; i < j; i++) {
var info = infoArray[i];
geocoder.geocode({'address': addressArray[i]}, createCallback(info, map));
} //callback function
}
function createCallback(info, map) {
var callback = function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
title: 'Click for more details'
});
//..................
</script>
我想达到的目标:
page2.php
我想在我刚刚点击的 infowindow
中显示 page1.php
按钮的更多详细信息。我应该怎么做?有什么提示吗??
我在第二页写了 php 代码,但我只是把所有记录都取出来了,
刚刚单击的标记与 page2 记录之间没有关联。我怎样才能做到这一点?第二页不包含任何地图,只是纯文本数据。
在您的代码中,您可以传递要在 page2.php 上显示的记录的唯一键或 ID,并使用 $_GET
方法获取该 ID 并用于显示该标记的详细信息。
在 page1.php
<?php
..............
$info= array();
foreach($details as $d) {
$info[] = "<div id='infoData'>".$d['name'].$d['quantity']."<button id='details' onclick='window.location.href= \\"page2.php?marker=".$d['id']."\\"'>Detail</button>"."<div>";
}
//.........
?>
于 page2.php
$infomarker = $_GET['marker'];
使用 $infomarker
获取所有详细信息。
我有: 标记是由表单提交创建的,表单包含邮政编码输入。下面的 javascript 将采用此邮政编码并在 google 地图上显示为标记。 (这是一个不同的页面)
page1.php(下面的代码)我有一个 php 数组,这个数组包含所有信息窗口数据, javascript 是创建地图、标记和信息窗口。
<?php
..............
$info= array();
foreach($details as $d) {
$info[] = "<div id='infoData'>".$d['name'].$d['quantity']."<button id='details' onclick='window.location.href= \\"page2.php\\"'>Detail</button>"."<div>";
}
//.........
?>
以上代码就是infoWindow上的所有内容。单击产品数组中的那个按钮将转到 page2.php
<script>
//...................
function init() {
var mapDiv = document.getElementById("map");
var mapOptions = {
center: new google.maps.LatLng(51.528308,-0.3817765),
zoom: 12,
mapTypeId: 'roadmap'
};
var map = new google.maps.Map(mapDiv, mapOptions);
///////////////add markers//////////
var addressArray = ("abc", "def","xxx"), infoArray = (<?php echo $i; ?>);
var geocoder = new google.maps.Geocoder();
for (var i = 0, j=addressArray.length; i < j; i++) {
var info = infoArray[i];
geocoder.geocode({'address': addressArray[i]}, createCallback(info, map));
} //callback function
}
function createCallback(info, map) {
var callback = function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
title: 'Click for more details'
});
//..................
</script>
我想达到的目标:
page2.php
我想在我刚刚点击的 infowindow
中显示 page1.php
按钮的更多详细信息。我应该怎么做?有什么提示吗??
我在第二页写了 php 代码,但我只是把所有记录都取出来了, 刚刚单击的标记与 page2 记录之间没有关联。我怎样才能做到这一点?第二页不包含任何地图,只是纯文本数据。
在您的代码中,您可以传递要在 page2.php 上显示的记录的唯一键或 ID,并使用 $_GET
方法获取该 ID 并用于显示该标记的详细信息。
在 page1.php
<?php
..............
$info= array();
foreach($details as $d) {
$info[] = "<div id='infoData'>".$d['name'].$d['quantity']."<button id='details' onclick='window.location.href= \\"page2.php?marker=".$d['id']."\\"'>Detail</button>"."<div>";
}
//.........
?>
于 page2.php
$infomarker = $_GET['marker'];
使用 $infomarker
获取所有详细信息。