【发布时间】:2015-02-07 00:42:48
【问题描述】:
我有一个包含 2 个下拉菜单的索引页。第二个下拉列表取决于第一个,从第二个列表中选择一个值后,根据所选值在数据库表中执行搜索,然后显示匹配结果。我想要的是正在显示的结果(在这种情况下,与结果相对应的纬度和经度)应该显示在谷歌地图上
目前为止的代码
主页上包含下拉菜单并显示地图的代码
<div class="showsearch" id="gmap_canvas"> //place where the ,ap should get displayed
</div>
执行搜索以显示结果的代码,也应该适用于地图
<?php
include("connection.php");
if(isset($_POST['fname']))
{
$fname = mysqli_real_escape_string($con, $_POST['fname']);
$sql1 = 'SELECT * FROM features_for_office WHERE fname LIKE "%'.$fname.'%"';
$result = mysqli_query($con, $sql1);
if (mysqli_num_rows($result) > 0)
{
while($row = mysqli_fetch_assoc($result))
{
$latitude= $row["latitude"];
$longitude= $row["longitude"];
}
?>
<!-- JavaScript to show google map -->
<div class="showsearch" id="gmap_canvas"></div>
<script>
function init_map(lat,lang) {
var myOptions = {
zoom: 14,
center: new google.maps.LatLng(lat, lang),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("gmap_canvas"), myOptions);
marker = new google.maps.Marker({
map: map,
position: new google.maps.LatLng(<?php echo $latitude; ?>, <?php echo $longitude; ?>)
});
/*infowindow = new google.maps.InfoWindow({
content: "<?php echo $formatted_address; ?>"
});*/
google.maps.event.addListener(marker, "click", function () {
infowindow.open(map, marker);
});
infowindow.open(map, marker);
}
function loadCoordinates(){
var latitude;
var longitude;
$('.showsearch').blur(function() {
$.ajax({
type: "GET",
dataType: "json",
url: "get_search_data.php",
data: "name="+$(this).val(),
success: function(json){
$('#number').val(json.num);
}
});
});
//call the function once coordinates are available from the server/
//init_map must be called from the call back of ajax function
init_map(latitude,longitude);
}
//instead of init_map call the loadCoordinates to get the values from server
google.maps.event.addDomListener(window, 'load', loadCoordinates);
</script>
<?php }
else
{
echo "0 results";
}
mysqli_close($con);
}
?>
虽然我得到了纬度和经度的值,但我无法显示地图以及特定纬度和经度上的标记。任何帮助将不胜感激
【问题讨论】:
-
你的 div 和 php 脚本本身在同一个页面上,对吗?
-
@Shaikh Mohammed Shariq 不,他们在不同的页面上
-
您的地图将在您指定的 div 中呈现,id 为“gmap_canvas”。您加载地图的脚本应该在您指定 div 的同一页面上,因为您的 div 是容器。如果您的 php 页面呈现地图的响应页面,那么您可以在 java 脚本标记上方定义 div 以显示地图。在此处查看 Javascript + HTML 的示例,其中 div 和 javascript 在同一页面上 developers.google.com/maps/documentation/javascript/examples/…
标签: javascript php google-maps google-maps-api-3