地理位置自动发布坐标 php
Geolocation autopost coordinates to php
我的代码有问题。我从 javascript 获取输入框的坐标,然后自动 post 输入。但是在我的 post 页面中没有出现变量。
获取坐标:
function showlocation() {
navigator.geolocation.getCurrentPosition(callback);
}
function callback(position) {
document.getElementById('latitude').value = position.coords.latitude;
document.getElementById('longitude').value = position.coords.longitude;
}
window.onload = function () {
showlocation();
}
自动post 表单到 php 页面:
function gonder()
{
document.forms["geo"].submit();
}
window.onload = gonder;
<form action="geolocation.php" method="post" name="geo" id="geo">
<input type="text" name="latitude" id="latitude">
<input type="text" name="longitude" id="longitude">
</form>
但是在php页面中没有变量可看。
window.onload = function () {
showlocation();
};
window.onload = gonder;
这里,window.onload = gonder
覆盖window.onload = function () { ... }
,所以只有gonder
会运行。您可以通过在单个 window.onload
函数中调用这两个函数来解决此问题:
window.onload = function () {
showlocation();
gonder();
};
但是这仍然不起作用,因为 gonder
将在 navigator.geolocation.getCurrentPosition
调用完成之前执行,因此表单将在仍然为空时提交。要解决此问题,请将调用移至 callback
:
内的 gonder
function callback(position) {
document.getElementById('latitude').value = position.coords.latitude;
document.getElementById('longitude').value = position.coords.longitude;
gonder();
}
我的代码有问题。我从 javascript 获取输入框的坐标,然后自动 post 输入。但是在我的 post 页面中没有出现变量。
获取坐标:
function showlocation() {
navigator.geolocation.getCurrentPosition(callback);
}
function callback(position) {
document.getElementById('latitude').value = position.coords.latitude;
document.getElementById('longitude').value = position.coords.longitude;
}
window.onload = function () {
showlocation();
}
自动post 表单到 php 页面:
function gonder()
{
document.forms["geo"].submit();
}
window.onload = gonder;
<form action="geolocation.php" method="post" name="geo" id="geo">
<input type="text" name="latitude" id="latitude">
<input type="text" name="longitude" id="longitude">
</form>
但是在php页面中没有变量可看。
window.onload = function () {
showlocation();
};
window.onload = gonder;
这里,window.onload = gonder
覆盖window.onload = function () { ... }
,所以只有gonder
会运行。您可以通过在单个 window.onload
函数中调用这两个函数来解决此问题:
window.onload = function () {
showlocation();
gonder();
};
但是这仍然不起作用,因为 gonder
将在 navigator.geolocation.getCurrentPosition
调用完成之前执行,因此表单将在仍然为空时提交。要解决此问题,请将调用移至 callback
:
gonder
function callback(position) {
document.getElementById('latitude').value = position.coords.latitude;
document.getElementById('longitude').value = position.coords.longitude;
gonder();
}