У меня проблема с моим кодом. Я получаю координаты в поле ввода из 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 нет переменной, чтобы увидеть.
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();
}
Других решений пока нет …