JavaScript не может передать переменную JS в PHP с помощью AJAX

Я пытаюсь узнать текущее местоположение пользователя.

У меня есть сценарий 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'];

Ничего не появляется Заранее спасибо.

0

Решение

Ничего не появляется

И это правильный вы никогда не получите ничего, просматривая index.php, потому что в это время нет POST, AJAX является внутренним, и единственный способ показать результат из index.php — это страница, которую вы отправляете с помощью вызова ajax.

В этот :

success: function(data)
{
console.log(data);

}

Вы можете контролировать, где показывать ваши данные, которые поступают из index.php, например, alert(data) или же document.getElementById("someelement").innerHTML=data; и так далее.

1

Другие решения

Это может помочь определить и вернуть 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.

1

По вопросам рекламы [email protected]