2015-12-25 16 views
1

我想用一個PHP數組從數據庫中獲取長和緯度值,並將這些數據放到使用gmaps.js的地圖上。PHP數組到jQuery - gmaps.js不創建標記

到目前爲止,我已經在PHP中創建了該數組,並將其回顯到我的頁面上以確認正在顯示正確的值。

$data = array(); 
$data['latitude'] = array($lat); 
$data['longitude'] = array($lng); 
echo json_encode($data); 

所以$ data是數組,裏面有我想要的值。

然後我想使用jQuery得到JSON編碼數據,把這些進入地圖標記的位置和顯示標記,像這樣:

$.ajax({ 
     type: "POST", 
     url: "phppage.php", 
     dataType: "JSON", 
     success: function(data) { 
      $.each(data, function(key, value) { 
       poi_marker = { 
        marker: { 
         lat: data.latitude, 
         lng: data.longitude, 
         } 
         } 
       } 
       poi_markers.push(poi_marker); 
      }); 

      map.addMarkers(poi_markers); 
     } 
    }); 

我沒有得到任何錯誤,在我的控制檯(使用Firefox和螢火蟲),地圖顯示但沒有標記顯示。

回答

0

我想這需要

$.ajax({ 
    type: "POST", 
    url: "phppage.php", 
    dataType: "JSON", 
    success: function(data) { 
     $.each(data, function(key, value) { 
      map.addMarker{ 
       lat: data.latitude, 
       lng: data.longitude 
      } 
     } 
    }  
}); 

Check This

+0

我檢查的聯繫,但它並沒有幫助。當我添加標記硬編碼,像[so](https://jsfiddle.net/rh3jgjq4/)它工作正常。不過,我似乎無法使用JSON編碼來傳遞數據 – PublicDisplayName

+0

但我可以通過PHP回顯值。我知道這不是最佳實踐,但是我將如何通過運行PHP數組來回顯值? – PublicDisplayName

+0

你可以使用JSON.parse(data);使用easly的數組 –

1

我不認爲你的代碼實際上是做什麼的,你認爲這是做成功檢索到的數據。請參閱this fiddle瞭解您的循環實際發生的情況。

如果您在PHP端以不同的方式存儲數組,則可以更容易地在JS中循環多個標記。另外,我不認爲gmaps.js需要額外的'標記'鍵在對象中。

新PHP

$data = array(); 
$data[] = array(
    'latitude' => $lat 
    ,'longitude' => $long 
); 
echo json_encode($data); 

新的JS

var poi_markers = []; // make sure you declare this before using it. if you already declare it somewhere else, don't use this line 
$.ajax({ 
    type: "POST", 
    url: "phppage.php", 
    dataType: "JSON", 
    success: function(data) { 
     $.each(data, function(key, value) { 
      var poi_marker = { 
       lat: value.latitude, 
       lng: value.longitude 
      } 
      poi_markers.push(poi_marker); 
     }); 

     map.addMarkers(poi_markers); 
    } 
}); 

你可能會遇到麻煩,因爲你指定dataType: "JSON"但(ATLEAST在您發佈的代碼),你不改變在PHP端的頭。您可能需要這一行添加到頂部的phppage.php

header("Content-Type: application/json", true); 

Where I learned everything I know about gmaps.js