每分钟将用户的地理位置发送到服务器

我正在尝试编写一个应用程序,每分钟左右将用户的地理位置发送到MYSQL数据库。 这是我现在的代码,但它不起作用。 我如何更改它以使其工作?

JS:

       setInterval ( "onPositionUpdate()", 10000 ); function onPositionUpdate(position) { var lat = position.coords.latitude; var lng = position.coords.longitude; jQuery.ajax({ type: "POST", url: "myURL/location.php", data: 'x='+lat+ '&y='+lng , cache: false, }); } if(navigator.geolocation) navigator.geolocation.watchPosition(onPositionUpdate); else alert("navigator.geolocation is not available");    

和PHP:

 prepare($sql); $q->execute(array($x), ($y)); ?> 

我想这不是发送多个变量的正确方法,是吗? Firebug的控制台告诉我

  missing } after property list [Break On This Error] data: 'x='+lon+'&y='+lat; 

当我只使用一个值时,它只将该变量POST到服务器一次,然后在该控制台之后给出:

 position is undefined [Break On This Error] var lat = position.coords.latitude; 

你需要做一些事情:

 var currPosition; navigator.geolocation.getCurrentPosition(function(position) { updatePosition(position); setInterval(function(){ var lat = currPosition.coords.latitude; var lng = currPosition.coords.longitude; jQuery.ajax({ type: "POST", url: "myURL/location.php", data: 'x='+lat+'&y='+lng, cache: false }); }, 1000); }, errorCallback); var watchID = navigator.geolocation.watchPosition(function(position) { updatePosition(position); }); function updatePosition( position ){ currPosition = position; } function errorCallback(error) { var msg = "Can't get your location. Error = "; if (error.code == 1) msg += "PERMISSION_DENIED"; else if (error.code == 2) msg += "POSITION_UNAVAILABLE"; else if (error.code == 3) msg += "TIMEOUT"; msg += ", msg = "+error.message; alert(msg); }