使用Ajax

时间:2015-08-30 20:15:44

标签: javascript php html ajax

我想在PHP变量中存储纬度和经度值,但无法这样做。这是我的代码。有人可以帮我解释为什么这些值不会存储在php变量中:

代码:

<!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>

2 个答案:

答案 0 :(得分:1)

假设您的javascript中正确设置了latlongt(您可以进行console.log检查以确保),看起来您正在设置{{1} }和$var变量到$var1函数的结果,该函数返回true或false,而不是isset()$_POST['latitude']的值。我假设你的意思是:

$_POST['longitude']

希望有所帮助。

答案 1 :(得分:1)

PHP isset()函数返回一个布尔值。从documentation开始,isset函数用于:

  

确定变量是否已设置且不是NULL

因此,在您的情况下,您将函数的返回值存储到变量中。它可以是truefalse

所以这是更正后的代码:

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

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