地理位置插入到 sql 中


Geolocation insert into sql

我想将用户的地理位置解析到我的数据库中。

在我的数据库中,有 2 行称为:纬度和经度,我希望将位置存储在这些行中。

以下是获取位置的 HTML5 API:

<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;  
    }
    getLocation();
</script>

这是包含提交表单的页面

<div class="modal" id="myModal">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true"><span class="fui-cross"></span></button>
                <h4 class="modal-title"><center>Post</center></h4>
            </div>
            <div class="modal-body">
                <form action="parse_post.php" method="post" name="form1" enctype="multipart/form-data">
                    <input name="post_type" type="hidden" value="a" />
                    <div class="form-group">
                        <textarea class="form-control" name="description" rows="6" maxlength="450" placeholder="write something"></textarea>
                    </div>
                    <div class="pull-right">
                    </div>
                    <div class="form-group">          
                        <div id="demo" onLoad=""></div>          
                        <div class="pull-right">
                            <input name="" type="submit" class="btn btn-info" value="Post" onclick="javascript:return validateMyForm();"/> 
                            <input name="uid" type="hidden" value="<?php echo $_SESSION['id']; ?>" />
                            <input name="upass" type="hidden" value="<?php echo $_SESSION['userpass']; ?>" />        
                        </div>
                    </div>

任何帮助将不胜感激谢谢

#Demo不是

表单字段,因此当您提交它时,不会将任何内容传递到服务器。试试这个

<input id="demo" type="text" />

脚本

<script>
    var x=document.getElementById("demo");
    function getLocation()
    {
        if (navigator.geolocation)
        {
            navigator.geolocation.getCurrentPosition(showPosition);
        }
        else
        {
            x.value = "Geolocation is not supported by this browser.";
        }
    }
    function showPosition(position)
    {
        x.value ="Latitude: " + position.coords.latitude + 
        "<br>Longitude: " + position.coords.longitude;  
    }
    getLocation();
</script>

更新

我想这还有更多。将这些值作为组合字符串发送是没有意义的。请改为执行以下操作:

<input id="latitude" name="latitude" type="text" />
<input id="longitude" name="longitude" type="text" />

脚本

<script>
    function getLocation()
    {
        if (navigator.geolocation)
        {
            navigator.geolocation.getCurrentPosition(showPosition);
        }
    }
    function showPosition(position)
    {
        document.getElementById("latitude").value = position.coords.latitude; 
        document.getElementById("longitude").value = position.coords.longitude; 
    }
    getLocation();
</script>