で生成されたPHPスクリプトからクライアントのにJSONデータを返します。これは、ユーザーがフィルタリング フォームで選択して [送信]をクリックした内容に基づいて、返されたすべてのデータを更新し、Google マップのマーカーとして表示します。SQL
jQuery.each()
JSON
問題は、返さJSON
データを新しいマーカーとして、既に表示されているマーカー (ページが最初に読み込まれたときのデフォルトのもの) にバインドするだけです。
ここで何が間違っていますか?
この jQuery プラグインを使用して Google マップを操作します。
返された JSON は次のようになります。
[{"Name":"John Smith","Address":"123 Fake St.", "Telephone":"50011111" ,"Lat":"coord values","Lng":"coord values"},{...repeat...},{}]
送信ボタンの Jquery:
$('#myform').on('submit', function(e) {
e.preventDefault();
var myData = $('#myform').serializeArray();
$.getJSON('phpscript.php', myData, function(json){
var theMarkers = json;
// alert(JSON.stringify(json));
$.each(theMarkers, function(i, val) {
$('#map_canvas').gmap('addMarker', { 'position': new google.maps.LatLng(val.Lat, val.Lng), 'bounds':true, 'icon':'mymarker.png' } ).click(function(){
$('#map_canvas').gmap('openInfoWindow', { 'content': '<h1>'+val.Name+'</h1>'+'<h2 style="color: grey">'+val.Address+'</h2><p style="color: green">'+val.Telephone+'</p>' }, this);
});
});
});
});