我通过 HTML5 检索坐标。但是当我尝试使用 AJAX 帖子保存坐标时,没有插入任何内容。savespot.php 确实有效,所以也许它与 ajax 帖子有问题?还是在检索坐标之前运行ajax post?
<!DOCTYPE html>
<html>
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<body>
<p id="demo">Click the button to get your position:</p>
<button onclick="getLocation()">Get your location</button>
<div id="mapholder"></div>
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script>
var x=document.getElementById("demo");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition,showError);
}
else{x.innerHTML="Geolocation is not supported by this browser.";}
}
function showPosition(position)
{
lat=position.coords.latitude;
lon=position.coords.longitude;
latlon=new google.maps.LatLng(lat, lon)
mapholder=document.getElementById('mapholder')
mapholder.style.height='250px';
mapholder.style.width='500px';
var myOptions={
center:latlon,zoom:14,
mapTypeId:google.maps.MapTypeId.ROADMAP,
mapTypeControl:false,
navigationControlOptions:{style:google.maps.NavigationControlStyle.SMALL}
};
var map=new google.maps.Map(document.getElementById("mapholder"),myOptions);
var marker=new google.maps.Marker({position:latlon,map:map,title:"You are here!"});
}
function showError(error)
{
switch(error.code)
{
case error.PERMISSION_DENIED:
x.innerHTML="User denied the request for Geolocation."
break;
case error.POSITION_UNAVAILABLE:
x.innerHTML="Location information is unavailable."
break;
case error.TIMEOUT:
x.innerHTML="The request to get user location timed out."
break;
case error.UNKNOWN_ERROR:
x.innerHTML="An unknown error occurred."
break;
}
}
</script>
<script>
function ajaxFunction()
{
$.ajax({
url:'savespot.php',
type:'POST',
data:'lat='+lat+'&lon='+lng,
success:function(d){
console.log(d);
},
error(w,t,f){
console.log(w+' '+t+' '+f);
}
});
}
</script>
</body>
</html>
保存点.php
<?php
include_once 'includes/db.php';
// $x = "52.364659";
// $y = "13.191007";
$nick = "GPSTEST";
$adress = "Odefinierat";
$x = @$_POST['lat'];
$y = @$_POST['lng'];
$sql = 'INSERT INTO location ' .
'(name, address, lat, lng, date) ' .
'VALUES ("' . $nick . '", "' . $adress . '", "' . $x . '", "' . $y . '", NOW())';
$retval = mysql_query($sql, $connection);
if (!$retval) {
die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
?>