**更新**
我有AJAX工作(见下文),但现在模态叠加层在打开后不会关闭。有什么想法? (请参阅叠加JS原始帖子上的jsfiddle)
map.addMarker({
lat: 34.5333,
lng: 69.1333,
title: 'Afghanistan',
click: function(){
if ($('#modal-shade').length == 0)
var a = $(this).attr('title');
var jqhxr = $.ajax( 'inc/parser.php?country='+a )
.done(function(data) {
$('.modal').html(data);
openOverlay('.modal');
return false;
});
}
});
**原始发布**
我正在使用gmaps.js(http://hpneo.github.io/gmaps/)来显示包含不同国家/地区的多个标记的地图。我试图设置它,以便当用户点击特定标记时,它会点击PHP脚本(即script.php?country = USA),查询数据库以填充一块具有特定国家/地区的html数据,并通过AJAX返回要以模态(http://jsfiddle.net/istvanv/uQj7t/28/)显示的国家/地区数据。
我根本不是一个javascript人,我不确定如何动态地完成这项工作,而不需要在页面上单独设置每个模态的代码,从而使页面大小变大。这就是我正在做的事情:
map.addmarker({
lat: 0.0000,
lng: 0.0000,
title: USA,
click: function(e){
$.ajax({
url: 'inc/parser.php?country=USA',
type: 'GET',
data: 'USA',
});
openOverlay('.USA').html(data);
preventDefault();
}
});
// more map markers here
parser.php只是一个php / mysql查询,它根据传递的变量抓取国家数据并填写模板 - 当我点击带有国家/地区变量的页面时,这部分工作正常:
if(isset($_GET['country']) && !empty($_GET['country'])) {
$country = $_GET['country'];
//connection stuff here
$results = $mysqli->query("SELECT * FROM table WHERE country = '". $country ."' LIMIT 1");
while($row = $results->fetch_object()) {
echo 'Population: '. $row->population .' people
etc
etc
etc';
}
}
$mysqli->close();
我知道它可能很可怕而且可笑但是我一直在抨击它,现在这是一个彻头彻尾的麻烦。有人可以帮我拿这个AJAX吗?
答案 0 :(得分:0)
你能分开添加标记ajax请求吗?当您单击标记时,获取其标题属性并将其传递给您ajax url。 e。
map.addmarker({
lat: 0.0000,
lng: 0.0000,
title: USA,
});// for each marker
$(".YourMarkersClass")click( function(){
var a= $(this).attr("title");
$.ajax({
url: 'inc/parser.php?country='+a,
type: 'GET',
data: a,
});
openOverlay('.'+a).html(data);
preventDefault();
});