我想在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>
答案 0 :(得分:1)
假设您的javascript中正确设置了lat
和longt
(您可以进行console.log
检查以确保),看起来您正在设置{{1} }和$var
变量到$var1
函数的结果,该函数返回true或false,而不是isset()
或$_POST['latitude']
的值。我假设你的意思是:
$_POST['longitude']
希望有所帮助。
答案 1 :(得分:1)
PHP isset()
函数返回一个布尔值。从documentation开始,isset
函数用于:
确定变量是否已设置且不是NULL
因此,在您的情况下,您将函数的返回值存储到变量中。它可以是true
或false
。
所以这是更正后的代码:
if (isset($_POST["latitude"])) {
$var = $_POST['latitude'];
}
if (isset($_POST["longitude"])) {
$var1 = $_POST['longitude'];
}