地理位置自动发布坐标 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();
}