2014-09-11 71 views
0

我需要從地址獲取經緯度,使用谷歌地圖,並用php操縱它。從Javascript/Geocoder.geocode()獲取經度和緯度並使用它與PHP

我用這樣一個https://developers.google.com/maps/documentation/javascript/examples/geocoding-simple代碼,具有該部分:

function codeAddress() { 
    var address = document.getElementById('address').value; 
    geocoder.geocode({ 'address': address}, function(results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 
     map.setCenter(results[0].geometry.location); 
     var latitude = results[0].geometry.location.lat(); 
     var longitude = results[0].geometry.location.lng(); 
     var marker = new google.maps.Marker({ 
      map: map, 
      position: results[0].geometry.location 
     }); 
    } else { 
     alert('Geocode was not successful for the following reason: ' + status); 
    } 
    }); 
} 

,我已經添加了變數緯度和經度(按照this question中的說明現在,我需要使用變量我已經在Java腳本中的PHP腳本創建的。

我新手到JavaScript,因此,我很抱歉,如果這是一個簡單的問題。

+0

如果你只是想打印出座標到您的網頁,(<?PHP的echo()>爲您的''例子說明)你可以使用JavaScript來做到這一點,不需要使用PHP。你能澄清一下你需要將這些協議傳遞給PHP嗎? – duncan 2014-09-11 08:28:13

+0

我不是簡單地打印出座標,這是保持簡單問題的一個例子。我需要發送座標到setcookie()和一個外部程序來處理它並給出一個輸出。這很容易,我沒有任何問題可以用PHP來完成,爲什麼我想要傳遞變量。 – 2014-09-11 13:32:09

+0

@duncan我編輯了這個問題,希望現在好一點。 – 2014-09-11 15:52:03

回答

2

一個簡單的方法是使用基於3210的ajax。不要忘記下載/包含圖書館。

$.ajax({ 
    type:"POST", 
    url:"yourscript.php", 
    data: {type:getlatlong,latitude:latitude,longitude:longitude}, 
    success: function(){ 
     alert('sent'); 
    } 
}); 

在你的PHP,您可以訪問的信息:

if ($_SERVER["REQUEST_METHOD"]=="POST") { 
    if ($_POST["type"]=="getlatlong") { 
     $latitude = $_POST["latitude"]; 
     $longitude = $_POST["longitude"]; 
     ... 
    } 
+0

Thankyou Vizvi,我正在努力使這項工作。我的websit是一個WordPress的,並且總是有post方法的問題,但我想你的解決方案將會很完美。謝謝! – 2014-09-11 12:10:16

+0

通過tye的方式,有沒有辦法在$ .ajax()中使用當前的url? – 2014-09-11 12:18:54

+0

當前網址,即路徑中的PHP文件的含義?你可以使用'dirname(__ FILE __)',但這將只適用於普通的PHP腳本,而不適用於javascript文件。你也可以使用'get_bloginfo('wpurl')'WP函數來獲取wordpress基目錄,並修改它以包含你的PHP腳本。我不是很喜歡wordpress,對不起:) – 2014-09-11 18:56:36

0

我認爲你需要在PHP的script.php JavaScript變量是用於訪問您可以使用GET或POST方法數據服務器端語言。你可以簡單地得到這種方式,首先分配的JavaScript變量來隱藏文本字段,並使用GET或POST method.You可以將JavaScript變量這樣

<form action="yourphp.php" method="post"> <input type="hidden" value="latitude" name="latitude"> <input type="hidden" value="longitude " name="longitude"> </form>

在PHP訪問

在你的PHP文件訪問數據:

$latitude=$_POST['latitude'] $longitude=$_POST['longitude']

+0

謝謝user2804362。我應該如何連接這個javascript中創建的變量latitude和longitde? – 2014-09-11 12:11:53