Сохранение вывода JS в переменной PHP

У меня есть следующий код:

<!DOCTYPE html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API Example: Extraction of Geocoding Data</title>

</head>

<body>

<script type="text/javascript">
var showPosition = function (position) {
document.write(position.coords.latitude + ',' + position.coords.longitude);
}
navigator.geolocation.getCurrentPosition(showPosition);

</script>
</body>

Этот маленький скрипт выводит местоположение пользователя в виде широты и долготы. Вместо того, чтобы выводить это на странице, я хочу сохранить долготу и широту в двух отдельных переменных, чтобы я мог получить расстояние между местоположением пользователя и данным пунктом назначения. Я провел небольшое исследование и понимаю, что это можно сделать только с помощью AJAX, однако я понятия не имею, как это сделать.

Вот когда приходит мой вопрос, как мне сохранить эти значения из JS в переменной PHP?

Кроме того, если есть какой-либо способ быстрее рассчитать расстояние в км между местоположением пользователя и данным пунктом назначения, я открыт для предложений.

Спасибо!

0

Решение

Да, вы должны использовать AJAX.

Обратите внимание, что JS (способ, которым вы собираетесь его использовать) работает на стороне клиента (в браузере) и PHP работает на сервере, что во многих случаях приводит к асинхронной связи, следовательно, AJAX.

В вашем коде JavaScript вам нужно создать XMLHttpRequest объект, который может обрабатывать связь:

var xhr = new XMLHttpRequest();

Пример того, как получить ответ с сервера:

xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
if (xhr.status == 200) {
// do something with xhr.responseText
}
}
}

Пример того, как отправить данные:

xhr.open("POST", "serverside.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(content);

content будут данные, которые вы отправляете на сервер, например "c=HelloWorld"

В вашем php-скрипте на стороне сервера вам нужно обрабатывать полученные данные. Это может выглядеть примерно так:

<?php

if (isset($_POST['c'])) {
echo htmlspecialchars($_POST['c'], ENT_QUOTES, 'UTF-8');
}

?>

Затем сервер должен ответить «HelloWorld».

1

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

Других решений пока нет …

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