【发布时间】:2017-09-28 18:52:50
【问题描述】:
这是我的 places.php 文件 这里我从数据库中获取我的坐标,我已经通过回显检查了它很好,我与数据库的连接也很好。在这里,我制作了一个自执行函数,它在无限循环中重复自身,每当数据库中的值发生更改或更新时,我的标记位置也会更新。代码非常简单,但看起来我的 ajax 成功变量不起作用。
include 'connection.php';
$myque = mysqli_query($con, 'Select * from places where id=1');
$gtloc = mysqli_fetch_array($myque);
$lati = $gtloc['lati'];
$long = $gtloc['longi'];
echo lati.",".$long;
//echo $long;
}
在这里,我收到了 ajax 成功响应并将其分配给一个变量,但它不起作用。
插入直接坐标显示地图,但我需要使标记响应数据库坐标而不刷新页面。将我的变量插入到 lat & long 中,地图就完全消失了
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
function test(){
//ajax call goes here
$.ajax({
url: "places.php",
type: "GET",
async: true,
data: {"id": 1},
success : function(value){
//alert("RESPONSE");
var data = value.split(",");
var latitude = (data[0]);
var longitude = (data[1]);
}
});
window.setTimeout(function(){
test();
}, 1500);
}
$(document).ready(function(){
test();
});
</script>
<script>
function initMap() {
var uluru = {lat: latitude , lng: longitude };
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 15,
center: uluru
});
var marker = new google.maps.Marker({
position: uluru,
map: map
});
}
</script>
</head>
<body>
<script></script>
<h2>My Places</h2>
<div id="map" style="height: 700px;width: 100%;"></div>
<!--map script -->
<!-- / Map Script-->
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBYBZxCetgqbsCQU3mxZ622GwNdSglEVN4&callback=initMap"></script>
</body>
</html>
【问题讨论】:
-
我只知道坐标应该存储为BSON,而不是常规的JSON。
-
因为纬度和经度的范围仅限于 Ajax 调用,并且您假设它会在 init 触发之前返回......
-
你能帮我做一个小提琴吗
标签: javascript php jquery ajax google-maps