Я пытаюсь узнать текущее местоположение пользователя.
У меня есть сценарий JS, чтобы получить текущие значения широты и долготы с AJAX для отправки переменных js в index.php.
$(document).ready(function() {
if ("geolocation" in navigator){
navigator.geolocation.getCurrentPosition(function(position){
var userLat = position.coords.latitude;
var userLong = position.coords.longitude;
console.log(userLong);
console.log(userLat);
$.ajax({
type: 'POST',
url: 'index.php',
data: {
userLat : userLat,
userLong : userLong
},
success: function(data)
{
console.log(data);
}
});
});
}else{
console.log("Browser doesn't support geolocation!");
}});
Затем я пытаюсь сделать это в моем index.php:
echo $_POST['userLat'];
echo $_POST['userLong'];
Ничего не появляется Заранее спасибо.
Ничего не появляется
И это правильный вы никогда не получите ничего, просматривая index.php, потому что в это время нет POST, AJAX является внутренним, и единственный способ показать результат из index.php — это страница, которую вы отправляете с помощью вызова ajax.
В этот :
success: function(data)
{
console.log(data);
}
Вы можете контролировать, где показывать ваши данные, которые поступают из index.php, например, alert(data)
или же document.getElementById("someelement").innerHTML=data;
и так далее.
Это может помочь определить и вернуть dataType
для Аякса.
добавьте это в свой список ajax
опции
dataType: 'json',
Затем в index.php кодируйте и выводите строку json. Удалить строки
echo $_POST['userLat'];
echo $_POST['userLong'];
заменить их на
echo json_encode($_POST);
console.log(data);
в функции успеха должен отображаться объект с двумя элементами: ‘userlat’ и ‘userLong’ и связанные значения для каждого. Или это должно быть, если $_POST
были эти два предмета.
Если вы хотите обновить экран браузера, вам придется принять data
и использовать его для изменения DOM.