PHP, чтобы повторить возвращенное значение из функции JavaScript

Я использую функцию getAddress() получить адрес предоставленных координат. Как мне убедиться, что возвращаемое значение функции может отображаться в php?

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places&key=yourAPIkey"></script>
<script type="text/javascript">
function GetAddress(lat,lng) {
var lat = parseFloat(lat);
var lng = parseFloat(lng);
var latlng = new google.maps.LatLng(lat, lng);
var geocoder = geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'latLng': latlng }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
var addr = results[0].formatted_address;
return addr;
}
}
});
}
</script>

<?php

$lng = 103.72;
$lat = 1.34628;
echo    "<script type='text/javascript'>",
"GetAddress(",$lat,",",$lng,");",
"</script>";

?>
</html>

0

Решение

Если все, что вы пытаетесь сделать, это записать результат вызова функции (согласно вашему недавнему ответу на комментарий), вы можете просто сделать это:

$lng = 103.72;
$lat = 1.34628;

echo "<script type='text/javascript'>document.write(GetAddress(",$lat,",",$lng,"));</script>";

Так, где когда-либо GetAddress называется, вы увидите выход.

В качестве альтернативы, если вам нужно нацелить определенную область, где вы хотите, чтобы результат появился, см. Zakaria Acharki обновленный ответ.


Лично я бы избегал смешивать php и javascript и просто делать все в php.

Например;

<?php

// Config
define('API_KEY', 'yourAPIkey');

// Helper function to geodecode lat/lng
function getFormattedAddress($lat, $lng) {
$result = json_decode(file_get_contents("https://maps.google.com/maps/api/geocode/json?key=". API_KEY ."&latlng=$lat,$lng"));
if ($result->status == 'OK') {
return $result->results[0]->formatted_address;
}
return 'Invalid lat/lng coordinates';
}

// Usage
$lat = 40.714224;
$lng = -73.961452;
echo getFormattedAddress($lat, $lng);

?>

Выходы: 277 Bedford Ave, Brooklyn, NY 11211, USA

Итак, ваш PHP-скрипт имеет lat, lng координаты, так что вы можете просто вызвать функцию php и просто визуализировать результат за один раз.

Постскриптум вам следует избегать публикации ваших ключей API в вашем вопросе; люди могут злоупотреблять этим;)

3

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

echo что вы будете выводить JS-скрипт на свою страницу, а не результат, поэтому я предлагаю вам добавить контейнер результатов, а затем поместить данные в него следующим образом:

<?php

$lng = 103.72;
$lat = 1.34628;

echo "<p id='result'> </p>";

echo "<script type='text/javascript'>".
"document.getElementById('result').innerText = GetAddress(".$lat.",".$lng.");".
"</script>";
?>

Надеюсь это поможет.

4

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector