2017-10-21 25 views
0

此問題已在網絡上的其他帖子和其他論壇中解決,但我不明白哪裏出錯。
我已經爲尋找用戶的位置驗證碼的javascript:
將地理座標更新爲db

if(!!navigator.geolocation){ 
    navigator.geolocation.getCurrentPosition(geolocalizzami); 
} 
else { 
    alert("Geolocalizzazione non supportata"); 
} 

function geolocalizzami(position) { 
    document.getElementById("lon").innerHTML = position.coords.longitude; 
    document.getElementById("lat").innerHTML = position.coords.latitude; 
} 

,我可以用

<label id='lon' /></label> 

和OK打印。我需要將這些數據加載到數據庫中。我知道我需要使用jQuery和Ajax。將ajax代碼放入一個html頁面中,用於查找座標並將這些數據與post方法一起發送到php頁面。在這裏我可以使用$ _POST ['value']來處理數據。 一個例子,在互聯網上找到,我用的是:

page.html中:

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script src="http://maps.google.com/maps/api/js?sensor=true"></script> 
<script 
src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"> 
</script> 
</head> 
<body> 
<script type="text/javascript"> 
if (navigator.geolocation) { 

navigator.geolocation.getCurrentPosition(function(position) { 

    $.ajax({ 
     url:'page2.php', 
     data: { 
      'lat': position.coords.latitude, 
      'lng': position.coords.longitude 
     }, 
     type: 'get', 
     success: function (result) { 
      // If your backend page sends something back 
      alert(result); 
     } 
    }); 

    }); 
} 
</script> 
</body> 
</html> 

使page2.php:

<?php 
echo $lat = $_POST['lat']; 
echo $lng = $_POST['lng']; 
?> 

爲什麼$ LAT$ LNG是空?提前致謝。

回答

1

變化

echo $lat = $_POST['lat']; 
echo $lng = $_POST['lng']; 

echo $lat = $_GET['lat']; 
echo $lng = $_GET['lng']; 

或者

type: 'get', 

type: 'post', 

你分別爲m ixing POSTGET這是PHP中的兩個不同的東西。我會推薦使用郵遞員這樣的工具來查看發生了什麼事。這有時會給你更多關於正在發生的事情的信息。

爲了測試purpese你可以改變$_POST$_GET和嘗試:

$.get("page2.php?lat="+position.coords.latitude+"&lng="+position.coords.longitude, function(data) { 
console.log(data) 
}); 

而且它更常見的是使用

$lat = $_GET['lat']; 
$lng = $_GET['lng']; // POST 

echo $lat; 
echo $lng; 

或者只是

echo $_GET['lat']; 
echo $_GET['lng']; // or POST 
+0

混合是我的疏忽,但謝謝指點我。無論如何,我糾正了使用後兩種方法,但我一直沒有看到任何東西。 –

+0

我已經更新了我的回答 – SuperDJ

+0

他們仍然是第一個使用javascript的武器,但是我把你的代碼放在了$ .ajax({...})的地方(對吧?)。無論是獲得和發佈,但我一直沒有看到任何東西。 –