После отправки, как я могу передать переменные JS следующему PHP в том же файле PHP? - PullRequest
1 голос
/ 05 мая 2011

После того, как пользователь заполняет свой адрес в текстовом поле и нажимает кнопку отправки, адрес отправляется на карты Google с помощью javascript, который затем получает обратно координаты адреса. Затем я хочу передать координаты в следующий код PHP, чтобы сохранить их в БД. Так что, если это код в одном файле PHP, как это можно сделать?

P.S. Просто чтобы быть более понятным, все это делается в рамках одной PHP-функции, которая обрабатывает отправку.

<script type="text/javascript"
...
var lat = results[0].geometry.location.latitude;
var lng = results[0].geometry.location.longitude;
...
}
</script>
<?php
$latitude = ??? ;
$longitude = ??? ;
?>

Ответы [ 2 ]

3 голосов
/ 05 мая 2011

Если вы получили широту / длину на странице при нажатии кнопки «Отправить» - перед отправкой формы вам обрабатывает скрипт PHP - просто сохраните результаты в скрытых входах;

<input id="lat" type="hidden" name="lat" value=""/>

с использованием js для обновления своих значений после их получения из вызова API;

$("lat").value = results[0].geometry.location.latitude;

Затем разрешите отправку формы в обычном режиме и извлеките «lat» из строки запроса / данных публикации.

0 голосов
/ 05 мая 2011

Невозможно, PHP запускается до того, как клиент получает файл (после чего браузер пользователя выполняет JavaScript)

То, что вы хотите, может быть легко достигнуто с помощью AJAX.Пусть JavaScript вызовет внешний php-файл, который просто получит полученные переменные и вставит их в базу данных.Например, в вашем ajax-запросе URL должен быть адресом вашего внешнего php-файла с переменными, добавленными к запросу uri:

"storedata.php?latitude="+lat+"&longitude="+lng

Затем в storedata.php:

$latitude = $_GET['latitude'];
$longitude = $_GET['longitude'];

// process them here and insert into your database .etc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...