将地理坐标更新为db

时间:2017-10-21 13:46:19

标签: javascript php jquery html ajax

此问题已在网络上的其他帖子和其他论坛中得到解决,但我不明白哪里出错 我有这个代码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 为空?提前谢谢。

1 个答案:

答案 0 :(得分:1)

更改

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

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

或者

type: 'get',

type: 'post',

您正在混合使用POSTGET这两种不同的东西。我建议使用像邮递员这样的工具来查看正在发生的事情。这有时会为您提供有关正在发生的事情的更多信息。

为了测试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