JQuery Mobile应用程序的地理定位

时间:2013-10-10 04:39:02

标签: html5 jquery-mobile

在我的表单中,我有3个隐藏的输入,旨在获取用户当前的纬度和经度,并将它们发送到MySQL数据库。 我尝试了一些代码但是当我在移动环境中运行它时,它清楚地表明两个输入都没有填充纬度和经度。

HTML代码

<div id="clockinPage" data-role="page" data-theme="c">
    <div id="wrapper_top_image">
       <div id="top_image"></div>
    </div>
    <div id="authentic">The information below will be used as Clock-In register.</div>
    <div data-role="content" >
        <div id="landmark-1" data-landmark-id="1">
            <form id="cname" align="left" action="post" data-ajax="false" >
               <label for "id">Employee's Name:</label><br/>
               <select name="id" id="id">
               <option value=""></option>
               </select><br/>
               <label for "job_id">Job's Name:</label><br/>
               <select name="job_id" id="job_id">
               <option value=""></option>
               </select><br/>
               <input type="hidden" name="latitued" id="latitued" value=""><br/>
               <input type="hidden" name="longitude" id="longitude" value="" >
               <input type="hidden" name="goo_map_api" id="goo_map_api" value="">
               <input type="submit" value="Clock-In" id="enviar_in" data-inline="true">        
            </form>
      </div>
   </div
</div>

JQuery脚本

$(document).on('pagebeforeshow', '#clockinPage', function() {

    var Geo={};

    if (navigator.geolocation) {
       navigator.geolocation.getCurrentPosition(success, error);
    }

    //Get the latitude and the longitude;
    function success(position) {
        Geo.lat = position.coords.latitude;
        Geo.lng = position.coords.longitude;
        populateHeader(Geo.lat, Geo.lng);
    }

    function error(){
        console.log("Geocoder failed");
    }

    function populateHeader(lat, lng){
        $('#latitued').html(lat);
        $('#longitude').html(lng);
        $('#goo_map_api').html("http://maps.googleapis.com/maps/api/geocode/json?latlng="+lat+","+lng+"&sensor=false");
    }

});

当我尝试发布上述表单中的信息时,它会返回以下错误: 应用程序错误 - 出现网络错误。 (文件:/// android_asset /网络/交ID = 1&安培; JOB_ID = 2及latitued =安培;经度=安培; goo_map_api =)

这清楚地表明它获得输入选择id,输入选择job_id但是左边3,纬度,经度和goo_map_api都是空的。 有谁知道发生了什么? 谢谢。

1 个答案:

答案 0 :(得分:0)

删除if检查,只需:navigator.geolocation.getCurrentPosition(success,error);