繁体   English   中英

无法使用AJAX将JS变量传递给PHP

[英]Cannot pass JS variable to PHP using AJAX

我正在尝试获取用户的当前位置。

我有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'];

什么都没有出现。 提前致谢。

为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。

什么都没有出现。

这是正确的 ,你将永远不会通过浏览的index.php因为此时没有POST得到任何东西,AJAX是内部和显示结果从index.php文件是在页面,你从它的一个AJAX调用发送的唯一途径。

在这 :

success: function(data)
            {
              console.log(data);

            }

您可以通过来控制显示index.php数据的位置,例如alert(data)document.getElementById("someelement").innerHTML=data; 等等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM