Javascript 在ajax响应中获取mysql结果集

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

我想每隔5秒从表(MAX(ID))中获取多个总线的最后位置

1) 如何从ajax响应发送结果集

2) 如何从ajax响应中填充标记[]

我所做的是:

<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());
    }