Javascript 在ajax响应中获取mysql结果集
我想每隔5秒从表(MAX(ID))中获取多个总线的最后位置 1) 如何从ajax响应发送结果集 2) 如何从ajax响应中填充标记[] 我所做的是:Javascript 在ajax响应中获取mysql结果集,javascript,php,ajax,google-maps,google-maps-markers,Javascript,Php,Ajax,Google Maps,Google Maps Markers,我想每隔5秒从表(MAX(ID))中获取多个总线的最后位置 1) 如何从ajax响应发送结果集 2) 如何从ajax响应中填充标记[] 我所做的是: <script> function autoUpdate(){ $.ajax({ type: 'GET', url: 'ajax/getlatlong.php', sync: true, success: function(data){ var j
<script>
function autoUpdate(){
$.ajax({
type: 'GET',
url: 'ajax/getlatlong.php',
sync: true,
success: function(data){
var json = $.parseJSON(data);
var bus_id=json.bus_id;
var latitude =json.latitude;
var longitude=json.longitude;
alert(latitude);
alert(bus_id);
document.getElementById("lat").value = latitude;
document.getElementById("longi").value = longitude;
}
});
// Call the autoUpdate() function every 5 seconds
setTimeout(autoUpdate, 5000);
}
autoUpdate();
// Multiple Markers
var markers = [
['Manly Beach', 28.64321, 77.11578],
['Manly Beach', 27.64321, 76.21578],
['Manly Beach', 26.64321, 77.31578],
['Manly Beach', 25.64321, 77.87178],
['Manly Beach', 24.64321, 77.71578],
];
</script>
您的javasript代码在这里
<script>
function autoUpdate(){
$.ajax({
type: 'GET',
url: 'ajax/getlatlong.php',
sync: true,
success: function(data){
var resultSet = $.parseJSON(data).resultSet; // Your result set
/*var json = $.parseJSON(data);
var bus_id=json.bus_id;
var latitude =json.latitude;
var longitude=json.longitude;
alert(latitude);
alert(bus_id);
document.getElementById("lat").value = latitude;
document.getElementById("longi").value = longitude;*/
}
});
// Call the autoUpdate() function every 5 seconds
setTimeout(autoUpdate, 5000);
}
autoUpdate();
// Multiple Markers
var markers = [
['Manly Beach', 28.64321, 77.11578],
['Manly Beach', 27.64321, 76.21578],
['Manly Beach', 26.64321, 77.31578],
['Manly Beach', 25.64321, 77.87178],
['Manly Beach', 24.64321, 77.71578],
];
</script>
在您的成功功能中,您只需浏览您的响应:
$j.each(data, function (i, val){
var lat = val.latitude;
var lng = val.longitude;
printMarker(lat, lng);
});
对于所有标记,定义一个数组以保留每个已创建标记的引用:
var markers = []; //Global Marker Array
然后只需在$.each()中调用一个函数,在该函数中创建一个标记,并将其引用推送到全局数组中:
function printMarker(lat, lng){
var marker = new google.maps.Marker({
position: {lat: lat, lng: lng},
icon: icon,
map: map
});
markers.push(marker);
}
如果这不是你所期望的,你必须澄清你的问题
编辑:
您正在使用一种不推荐的方式与数据库通信,在我提供的示例中,我使用的是PDO():
为了使用从$.ajax调用返回的数据,您可以这样做:
var res=$.ajax({…});var data=$.parseJSON(res.responseText)代码>
var markers = []; //Global Marker Array
function printMarker(lat, lng){
var marker = new google.maps.Marker({
position: {lat: lat, lng: lng},
icon: icon,
map: map
});
markers.push(marker);
}
try {
$stmt = $this->dbCon->prepare("select latitude,longitude,bus_id from tbl_map where id = :id");
$stmt->bindParam(':id', $id);
if($stmt->execute()) {
if ($stmt->rowCount() > 0) {
while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
$response[] = $row;
}
}else{
$response = null;
}
echo json_encode($response);
}
}catch (PDOException $e) {
header("HTTP/1.0 500 Internal Server Error");
die("Error: " . $e->getMessage());
}