我的代码有问题。我从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页面中没有可见的变量。
答案 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();
}