此问题已在网络上的其他帖子和其他论坛中得到解决,但我不明白哪里出错
我有这个代码javascript用于查找用户的位置:
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>
好的,好的。我需要将这些数据加载到数据库中。我知道我需要使用jquery和ajax。将ajax代码放入一个html页面,它的serv用于查找坐标并将这些数据与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 为空?提前谢谢。
答案 0 :(得分:1)
更改
echo $lat = $_POST['lat'];
echo $lng = $_POST['lng'];
到
echo $lat = $_GET['lat'];
echo $lng = $_GET['lng'];
或者
type: 'get',
到
type: 'post',
您正在混合使用POST
和GET
这两种不同的东西。我建议使用像邮递员这样的工具来查看正在发生的事情。这有时会为您提供有关正在发生的事情的更多信息。
为了测试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