簡體   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