地理定位autopost坐标到php

时间:2015-01-09 14:23:39

标签: php geolocation

我的代码有问题。我从javascript获取输入框的坐标,我自动提供输入。但在我的帖子页面中没有变数。

获取坐标:

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();
}

将自动提交表单转换为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页面中没有可见的变量。

1 个答案:

答案 0 :(得分:0)

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调用完成之前执行,因此表单将在仍为空时提交。要解决此问题,请将调用移至gonder内的callback

function callback(position) {
  document.getElementById('latitude').value = position.coords.latitude;
  document.getElementById('longitude').value = position.coords.longitude;
  gonder();
}