【问题标题】:HTML5 geolocation, pass lat/long to PHP variable on clickHTML5 地理位置,点击时将 lat/long 传递给 PHP 变量
【发布时间】:2015-03-09 12:27:30
【问题描述】:

当用户单击按钮并重定向到将值传递给 PHP 变量的新页面时,是否可以使用 HTML5 地理位置获取用户的纬度/经度?

因此,如果用户在index.php 上,其中包含 HTML5 地理位置代码,并且他们点击了此按钮;

<span class="button get-my-location">My Location</span>

然后它们将被重定向到weather.php,其中它们的纬度/经度将存储在 2 个 PHP 变量 $lat$long

这可能吗?我认为它需要基于 AJAX?不幸的是,AJAX 不是我的强项。

任何帮助都会很棒

【问题讨论】:

标签: php jquery ajax html


【解决方案1】:

获取用户的经度和纬度很容易,您需要将其分配给表单中的隐藏字段并将其提交到 php 页面 url 或通过 Javascript 以 GET 或 POST 形式发送

这是获取用户位置后如何直接重定向用户的示例:

<!DOCTYPE html>
<html>
<body>

<p>Click the button to get your coordinates.</p>

<button onclick="getLocation()">Try It</button>

<p id="demo"></p>

<script>
var x = document.getElementById("demo");

function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(redirectToPosition);
    } else { 
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}

function redirectToPosition(position) {
    window.location='weather.php.php?lat='+position.coords.latitude+'&long='+position.coords.longitude;
}
</script>

</body>
</html>

PHP 代码:

<?php

$lat=(isset($_GET['lat']))?$_GET['lat']:'';
$long=(isset($_GET['long']))?$_GET['long']:'';

//do whatever you want

?>

【讨论】:

    【解决方案2】:

    getPosition.php 这是您的退出页面名称

    <!DOCTYPE html>
    <html>
    <body ><!--onload="getLocation()" use it for on load page-->
    
    <button onclick="getLocation()">Try It</button>
    
    <script>
    
        function getLocation() {
            if (navigator.geolocation) {
                navigator.geolocation.getCurrentPosition(redirectToPosition);
            } else {
                x.innerHTML = "Geolocation is not supported by this browser.";
            }
        }
    
        function redirectToPosition(position) {
            window.location='getPosition.php?lat='+position.coords.latitude+'&long='+position.coords.longitude;
        }
    </script>
    <?php
    
    echo $lat=(isset($_GET['lat']))?$_GET['lat']:'';
    echo $long=(isset($_GET['long']))?$_GET['long']:'';
    
    //do whatever you want
    
    ?>
    </body>
    </html>
    

    【讨论】:

      猜你喜欢
      • 2013-05-05
      • 1970-01-01
      • 2016-09-12
      • 1970-01-01
      • 2021-04-18
      • 1970-01-01
      • 2023-03-10
      • 2020-01-24
      • 1970-01-01
      相关资源
      最近更新 更多