2016-02-08 19 views
0

我有一個結果集, 如何將其值傳遞給javascript函數,並將內部指針移至下一行。將結果集值傳遞給javascript函數

<?php 
$q=mysql_query("select * from tbl_map")or die(mysql_error()); 
$i=0; 
?> 

<script> 
$(document).ready(function() { 
// Initialize the Google Maps API v3 
var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 15, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 
var marker = null; 

function autoUpdate() { 

<?php 
mysql_data_seek($q,$i); 
$row=mysql_fetch_assoc($q); 
$i++; 
?> 

lat=<?php echo $row['latitude']; ?>; 

long=<?php echo $row['longitude']; ?>; 

    navigator.geolocation.getCurrentPosition(function(position) { 
    var newPoint = new google.maps.LatLng(lat, 
              long); 

    if (marker) { 
     // Marker already created - Move it 
     marker.setPosition(newPoint); 
    } 
    else { 
     // Marker does not exist - Create it 
     marker = new google.maps.Marker({ 
     position: newPoint, 
     map: map 
     }); 
    } 

    // Center the map on the new position 
    map.setCenter(newPoint); 
    }); 

    // Call the autoUpdate() function every 5 seconds 
    setTimeout(autoUpdate, 5000); 

} 

autoUpdate(); 
     }); 
</script> 

我想從數據庫中提取的緯度和經度,並傳遞給下自動更新() 但我不能向前移動內部指針。 如何解決?

+1

您收到了什麼輸出或錯誤? – kanudo

+0

我無法獲得變量i的遞增值。 –

+1

Duplicate:http://stackoverflow.com/questions/13840429/what-is-the-difference-between-client-side-and-server-side-programming – Quentin

回答

1

試試這個:在這個方法中,latitudelongitude的數組被分配給json數據形式的javascript變量json

<script> 

     // ---- PHP Starts here which fetch data and is placed immediately after <script> tag open 
     // ---- and store to a variable in json format. 

     <?php 

      $q = mysql_query("select * from tbl_map")or die(mysql_error()); 

      $response = array(); 

      for($i = 0; $i < mysql_num_rows($q) ; $i++) 
      { 

       mysql_data_seek($q, $i); 

       $row = mysql_fetch_assoc($q); 

       array_push($response, array(
        'lat'=>$row['latitude'], 
        'long'=>$row['longitude'] 
       )); 

       // ------ Here php assigns the array of data to `json` 
       // ------ `var json` is under scope of javascript 
       echo 'var json = ' . json_encode($response) . ';'; 

      } 

     ?> 

    // ---- PHP part ends here and javascript start 
    // ---- Testing the `json` var 

    console.log(json); 
    console.log(json.length); 


    $(document).ready(function() { 

     // Initialize the Google Maps API v3 
     var map = new google.maps.Map(document.getElementById('map'), { 
      zoom: 15, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }); 

     var c = 0; 

     var marker = null; 

     function autoUpdate() { 

       console.log(json[c].lat); 
       console.log(json[c].long); 

       navigator.geolocation.getCurrentPosition(function(position) 
       { 

        var newPoint = new google.maps.LatLng(json[c].lat, json[c].long); 

        if (marker) { 
         // Marker already created - Move it 
         marker.setPosition(newPoint); 
        } 
        else { 
         // Marker does not exist - Create it 
         marker = new google.maps.Marker({ 
          position: newPoint, 
          map: map 
         }); 
        } 

        // Center the map on the new position 
        map.setCenter(newPoint); 
       }); 

      if (c == (json.length - 1)) { c = 0; } else { c++; } 

      // Call the autoUpdate() function every 5 seconds 
      setTimeout(autoUpdate, 5000); 

     } 

     autoUpdate(); 

    }); 

    </script>