2015-08-30 69 views
0

我想將經度和緯度值存儲在PHP變量中,但無法這樣做。這是我的代碼。有人可以幫助我在這裏爲什麼這些值都沒有得到存儲在PHP變量:使用Ajax在PHP變量中獲得Javascript變量值

代碼:

<!DOCTYPE html> 
<html> 
<body onload="getLocation()"> 
<p id="demo"></p> 
<script> 
var x = document.getElementById("demo"); 

function getLocation() { 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 
} 

function showPosition(position) { 
    x.innerHTML = "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude; 
     var lat = position.coords.latitude; 
     var longt = position.coords.longitude; 
     $.ajax({ 
     type: 'POST', 
     data: { latitude : lat, longitude : longt }, 
    }); 

} 
     </script> 
<?php 
     $var = isset($_POST['latitude']); 
     $var1 = isset($_POST['longitude']); 
     echo $var; 
     echo $var1; 
?> 
</body> 
</html> 
+0

您需要了解_client-side_代碼_ SERVER-side_代碼之間的差異。 AJAX發送新的HTTP請求。 – SLaks

+0

那麼我需要將ajax代碼重定向到其他php頁面? –

+0

你的問題沒有意義。你想做什麼? – SLaks

回答

1

假設latlongt越來越在JavaScript中正確設置(你可以做一個console.log檢查請確保),看起來您正在將$var$var1變量設置爲返回true或false的isset()函數的結果,而不是$_POST['latitude']$_POST['longitude']的值。我假設你可能的意思是:

if (isset($_POST["latitude"])) { 
    $var = $_POST['latitude']; 
} 

if (isset($_POST["longitude"])) { 
    $var1 = $_POST['longitude']; 
} 

希望有幫助。

+0

我無法編輯此代碼,但第二個$ var應該是$ var1,以避免第二個覆蓋第一個 –

1

PHP isset()函數返回一個布爾值。從documentation,該isset功能用於:

確定是否一個變量被設定,並沒有NULL

所以你的情況你存儲的功能變量的返回值。它可以是truefalse

因此,這裏是更正後的代碼:

if (isset($_POST["latitude"])) { 
    $var = $_POST['latitude']; 
} 

if (isset($_POST["longitude"])) { 
    $var1 = $_POST['longitude']; 
}