2016-02-15 64 views
0

我使用gmaps.js作爲我網站上的交互式地圖。該庫允許您使用長/寬座標添加新的地圖標記。這些都存儲在我的數據庫,我檢索(以及其他數據)和回聲這個數據像這樣:從隱藏的<input>獲取值並在jQuery函數中使用

<input id="lat" type="hidden" value="'.$lat.'"/> 
<input id="long" type="hidden" value="'.$long.'"/> 

正在上回蕩的其他數據,這就是爲什麼你不能看到任何<?php ?>標籤 - 這是不是語法錯誤!

當我檢查我站點前端的元素時,我可以看到相應的值已成功回顯。

我遇到的問題是將存儲在<input>標記中的值存入我的jQuery函數中。

我想每個長和緯度值到這裏:

map.addMarker({ 
    lat: $lat, 
    lng: $long, 
    title: 'Lima', 
    } 
}); 

但是據我所知,這是不好的做法呼應PHP直接進入一個jQuery功能。

因此,我試圖做到以下幾點:

$(document).ready(function(){ 

$("lat").val(); 
$("long").val(); 

$.each(markers, function(index, value) { 

    var markers = { 
      lat: value.lat, 
      lng: value.long, 
     } 

}); 

}); 

你有什麼建議?

在此先感謝您的時間!

+3

使用這些$( 「#LAT」)爲例VAL()。 $(「#long」)。val(); – devpro

回答

1

我不是最先進的程序員,但我知道你的問題一個清晰的解決方案。

JSON 我知道您使用PHP來檢索您的協調,並且希望您的結果以Javascript可以理解的方式顯示。那麼,語言之間有更好的溝通方式,叫做JSON。您可以在PHP中使用這樣的:

echo json_encode(["lat"=>$lat,"long"=>$long]); 

然後你可以檢索它在Javascript中這樣的:

var LatLong = JSON.parse('{"lat":"lat","lon":"long"}'); 

然後可以使用普通的JavaScript來檢索兩個緯度和長。簡單地通過做LatLong.lat或類似的東西。

AJAX 通常我會使用AJAX做這些事情,但我想你不必這樣做。

最後,代碼

這裏是我會怎麼做,而不AJAX

var parseString = '{"lat":"lat","long":"long"}'; // <-- Your PHP echo 
var LatLong = JSON.parse(parseString); 

    map.addMarker({ 
     lat: LatLong.lat, 
     lng: LatLong.long, 
     title: 'Lima', 
     } 
    }); 
+0

好吧,我已經嘗試了你所說的話,但似乎沒有任何事情發生。我可以讓json_encode在我的頁面上回顯,但jQuery中沒有任何內容(也沒有錯誤)。這裏是[jsfiddle](https://jsfiddle.net/oepwur1r/),這正是我的頁面上。謝謝你的時間! – PublicDisplayName

+0

首先,你的小提琴有錯誤,你不能在不導入它的情況下使用jQuery。但是你在正確的軌道上。這是一個確認js部分工作的小提琴:https://jsfiddle.net/cer4dg7s/2/ – Napoleon

+0

我認爲'$(document).ready(function(){'使腳本不能運行 – Napoleon

2

在第一,在JQuery的按ID選擇一個元素,你需要HTML的id之前插入#

$("#lat").val(); 
$("#long").val(); 

然後,我不明白你的代碼,但我能看到上面兩行唐不做任何事情,從輸入元素獲取值,但不要將它們保存到任何變量中。

+0

是如果目標只是從輸入字段獲取值而不是其罰款。無論如何,它的jQuery不是JQuery:p – devpro

+0

ops,對不起。昨晚我很昏昏欲睡。 – dantella

0

我假設你在PHP可訪問的數據庫中有lng/lat數據。那麼,你可以通過json_encode()將它傳遞給你的客戶端JavaScript。下面的代碼假設你有一個來自數據庫的行對象數組。

<script> 
    // Created data from PHP 
    var mapData = <?php echo (!empty($data)) ? @json_encode($data) : '[]'; ?>; 
    </script> 

然後就繼續爲你使用$。每個()等

相關問題