我正在尝试获取用户的当前位置。
我有JS脚本通过AJAX获取当前的纬度和经度,以将js变量发送到index.php。
$(document).ready(function() {
if ("geolocation" in navigator){
navigator.geolocation.getCurrentPosition(function(position){
var userLat = position.coords.latitude;
var userLong = position.coords.longitude;
console.log(userLong);
console.log(userLat);
$.ajax({
type: 'POST',
url: 'index.php',
data: {
userLat : userLat,
userLong : userLong
},
success: function(data)
{
console.log(data);
}
});
});
}else{
console.log("Browser doesn't support geolocation!");
}});
然后我尝试在index.php中执行此操作:
echo $_POST['userLat'];
echo $_POST['userLong'];
什么都没有出现。提前谢谢。
答案 0 :(得分:1)
为ajax定义并返回dataType
可能会有所帮助。
将此添加到您的ajax
选项
dataType: 'json',
然后在index.php中编码并回显一个json字符串。删除行
echo $_POST['userLat'];
echo $_POST['userLong'];
用
替换它们echo json_encode($_POST);
成功功能中的console.log(data);
应该显示一个包含两个项目的对象:' userlat'和' userLong'以及每个的相关值。或者如果$_POST
有这两个项目,那应该是。
如果您希望更新浏览器屏幕,则必须使用data
并使用它来修改DOM。
答案 1 :(得分:1)
什么都没有出现。
那个正确你永远不会通过浏览index.php获得任何东西,因为此时没有POST,AJAX是内部的,是从索引显示结果的唯一方法.php在你发送的ajax调用页面中。
在此:
success: function(data)
{
console.log(data);
}
您可以控制在哪里显示来自index.php的数据,例如alert(data)
或document.getElementById("someelement").innerHTML=data;
等等。