Javascript 使用ajax将变量从JS传递到PHP

Javascript 使用ajax将变量从JS传递到PHP,javascript,php,ajax,Javascript,Php,Ajax,我试图将gps坐标从JavaScript传递到同一页面上的php变量,但在脚本运行后,并尝试在php中进行回显,它没有显示任何内容(注意:未定义索引:lat) var x=document.getElementById(“gps”); var y=document.getElementById(“gps”); 函数getLocation() { if(导航器.地理位置) { navigator.geolocation.getCurrentPosition(showPosition); } e

我试图将gps坐标从JavaScript传递到同一页面上的php变量,但在脚本运行后,并尝试在php中进行回显,它没有显示任何内容(注意:未定义索引:lat)


var x=document.getElementById(“gps”); var y=document.getElementById(“gps”); 函数getLocation() { if(导航器.地理位置) { navigator.geolocation.getCurrentPosition(showPosition); } else{x.innerHTML=“此浏览器不支持地理位置。”;} } 功能显示位置(位置) { x=位置坐标纬度; y=位置坐标经度; $.ajax({ 键入:“POST”, url:'index.php', 数据:{lat:x}, });
PHP代码:

 echo "<script> getLocation(); </script>";
        $lat=$_POST['lat'];
        echo $lat;
echo“getLocation();”;
$lat=$_POST['lat'];
echo$lat;

如何将变量从Javascript传递到php?

加载jQuery库:

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
AJAX响应调用javascript函数不是一个好选项。因此,我将在complete中调用$的值函数中的getLocation()函数。AJAX

function showPosition(position){
     x=position.coords.latitude;
     y=position.coords.longitude;
     $.ajax({  
        type: 'POST',
        url: 'index.php', 
        data: { lat: x },
        complete: function(text){getLocation();return text;}
     });
}

您需要理解客户端代码和服务器端代码之间的区别。特别是,您需要理解HTTP请求的含义。您加载了jquery库吗?我在代码中看不到它。$.ajax是一个函数。ajax不是这样工作的,您不需要回显任何JS函数。您只需要调用函数showPosition()从js获取发布的值,然后在后端获取发布的值。使用if-isset检查它是否确实存在,使用三元运算符很容易。我没有时间在这里给出完整的工作示例,但这个问题在互联网上已经被回答了1000多次,即使是一些答案,也会给出完整的工作代码。同意@Jonast92-Y您需要使用Jquery AJAX.complete函数来处理返回。对于此测试,您应该通过PHP回显lat。如果您不确定PHP是否接收到您想要的数据,请尝试运行die(var\u export($\u POST));作为PHP的第一行。您还应该提到.complete函数-他目前没有在JS中正确处理返回的数据。OP可能正在尝试启动getLocation函数?添加文档准备就绪,可能是在中?在这种情况下,
complete:
行应为
complete:function(text){getLocation(text);}
。我意识到他的getLocation没有参数,但传递返回的AJAX值而不是执行其他操作才有意义(因为它在其他地方不可用)@matcarlson是的,应该是这样。但是关于getLocation没有任何争议,我认为他正在试图将从javascript获取的位置保存到服务器。这是有意义的,因为他正在getLocation中调用showPosition。感谢所有帮助:)更新了代码,但遗憾的是,我仍然无法将x变量保存到服务器。首先尝试在我的站点顶部返回文本给我一个[Object]答案,但不是php给我的答案。
function showPosition(position){
 x=position.coords.latitude;
 y=position.coords.longitude;
 $.ajax({  
    type: 'POST',
    url: 'index.php', 
    data: { lat: x },
    complete: function(text){ return text; }
 });
}
function showPosition(position){
     x=position.coords.latitude;
     y=position.coords.longitude;
     $.ajax({  
        type: 'POST',
        url: 'index.php', 
        data: { lat: x },
        complete: function(text){getLocation();return text;}
     });
}