【发布时间】:2016-12-08 17:21:47
【问题描述】:
我正在尝试构建一个应用程序,该应用程序从数据库 (mysql) 中获取用户数据(纬度、经度),然后在谷歌地图上显示他们的位置。
这里是代码示例:
function initMap() {
var mapDiv = document.getElementById('map');
var map = new google.maps.Map(mapDiv, {
center: {lat: 33.7167, lng: 73.0667},
zoom: 11
});
makeRequest('get_locations.php', function(data) {
//alert("abc");
var data = JSON.parse(data.responseText);
//window.alert(data);
for (var i = 0; i < data.length; i++) {
//display(data[i]);
displayLocation(data[i]);
}
});
}
function makeRequest(url, callback) {
var request;
if (window.XMLHttpRequest) {
request = new XMLHttpRequest(); // IE7+, Firefox, Chrome, Opera, Safari
} else {
request = new ActiveXObject("Microsoft.XMLHTTP"); // IE6, IE5
}
request.onreadystatechange = function() {
if (request.readyState == 4 && request.status == 200) {
callback(request);
}
}
request.open("GET", url, true);
request.send();
}
get_locations.php
<?php
include('connection.php');
$l= array();
$result = mysqli_query($con,"SELECT * FROM users");
while ($row = mysqli_fetch_assoc($result)) {
$l[] = $row;
}
$j = json_decode($l, true);
//echo $j;
?>
有些事情我试图在代码上找到问题但失败了
在 get_location.php on echo $j; 中显示正确的响应
在此行之前 var data = JSON.parse(data.responseText); alert("abc") 有效,但在此之后无效,所以我认为问题出在这一行,但不知道为什么会这样, 有什么想法吗?
【问题讨论】:
-
在
get_location.php中,您需要使用json_encode而不是json_decode,并且您还需要回显它,以便ajax 回调可以使用。 -
哦,我怎么能错过这个?顺便说一句,感谢您的回复:) 它有效
标签: javascript php mysql json google-maps