将地理坐标更新为db
问题描述:
此问题已在网络上的其他帖子和其他论坛中解决,但我不明白哪里出错。
我已经为寻找用户的位置验证码的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是空?提前致谢。
答
变化
echo $lat = $_POST['lat'];
echo $lng = $_POST['lng'];
到
echo $lat = $_GET['lat'];
echo $lng = $_GET['lng'];
或者
type: 'get',
到
type: 'post',
你分别为m ixing POST
和GET
这是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
混合是我的疏忽,但谢谢指点我。无论如何,我纠正了使用后两种方法,但我一直没有看到任何东西。 –
我已经更新了我的回答 – SuperDJ
他们仍然是第一个使用javascript的武器,但是我把你的代码放在了$ .ajax({...})的地方(对吧?)。无论是获得和发布,但我一直没有看到任何东西。 –