Сценарий геолокации не возвращает значение - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь использовать Javascript для поиска местоположения пользователя, но он не дает мне никакого значения, мой код ниже

<script>
                        window.onload = function() {
                          var startPos;
                          var geoSuccess = function(position) {
                            startPos = position;
                            document.getElementById('startLat').innerHTML = startPos.coords.latitude;
                            document.getElementById('startLon').innerHTML = startPos.coords.longitude;
                          };
                          navigator.geolocation.getCurrentPosition(geoSuccess);
                        };
                    </script>
                    <?php echo "<script> getCurrentPosition('startLat') </script>"; ?> 

Ответы [ 3 ]

0 голосов
/ 06 ноября 2018

Если в вашем HTML есть элементы с идентификаторами «startLat» и «startLon», это будет работать

Просто добавьте в HTML:

<p id="startLat"></p>
<p id="startLon"></p>

Вы можете удалить эту строку, на самом деле:

<?php echo "<script> getCurrentPosition('startLat') </script>"; ?>
0 голосов
/ 06 ноября 2018

Чтобы использовать широту / долготу в вашем PHP, вы можете отправить значения через JS

В HTML

<script>
    function sendData(value) {
       var request = new XMLHttpRequest();
       request.open('post', 'DESTINATION.PHP', true);
       request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
       request.send('data=' + value);
    }
</script>

Или как скрытая форма ввода и доступ в PHP

if(isset($_POST['data'])){
   $data = $_POST['data'];
   // Do stuff...
}
0 голосов
/ 06 ноября 2018

API HTML5 Geolocation позволяет получить широту / долготу пользователя с помощью некоторого JavaScript (если браузер совместим, и если пользователь разрешает доступ к своему местоположению).

Затем вы можете выполнить обратное геокодирование местоположения, чтобы получить адрес. Существует несколько бесплатных служб обратного геокодирования , отличных от API Google.

Вы также можете проверить эту ссылку Как получить географическое местоположение IP-адреса в PHP для более глубокого понимания

Пример:

<script>
var x = document.getElementById("demo");
function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else {
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}
function showPosition(position) {
    x.innerHTML = "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude; 
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...