2015-07-10 24 views
0

我無法獲得以下代碼在PHP中工作。我想檢索用戶位置,然後將其發送到我的PHP腳本,以便在服務器上進一步處理。 Php不會檢索數據。

編輯:

<!DOCTYPE html> 
<html> 
<head> 
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script> 
</head> 
<body> 


<script> 

if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(successFunction, errorFunction); 
    } else { 
    alert('Geolocation is required for this page, but your browser doesn&apos;t support it. Try it with a browser that does, such as Opera 10.60.'); 
} 

function successFunction(position) { 
    var lat = position.coords.latitude; 
    var long = position.coords.longitude; 
    var latlong = {"lat" : lat , "long" : long}; 
    var latlong_encoded = JSON.stringify(latlong); 

    $.ajax({ 
    url: 'PostTest.php', 
    type: 'POST', 
    data: {"userLocation" : latlong_encoded}, 
    success: function(data) { 
     alert(latlong_encoded); 
    } 
}); 

} 

function errorFunction(position) { 
    alert('Error!'); 
} 
</script> 


</body> 
</html> 

這裏是PHP代碼:

<?php 
$lat[]= array('coord'=>json_decode($_POST["userLocation"])); 
print_r($lat); 
?> 

我只是得到一個空數組。 陣列([0] =>數組([座標] =>))

+0

「的PHP不會檢索數據「如何? – Jan

+0

javascript是好的 - 問題是在Dataprocessing.php中,或者,如果這是DataProcessing.php,你錯誤地認爲發佈到DataProcessing.php會導致php底部的代碼片段什麼都做 –

+0

我已經嘗試了兩種方法。最初有兩種不同的腳本,其中php是Data Processing.php。由於沒有工作,我試圖把它全部放在一個腳本中。我想這是錯誤的做法。雖然沒有工作, – Mdude

回答

0

嘗試增加

dataType: "json" //for response 
contentType: "application/json; charset=UTF-8" //for request 
在AJAX請求

..

我的片段:

if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showLocation); 
    } 
    else { 
    alert('Geolocation non supported..'); 
    } 

    function showLocation(position) { 
     var lat = position.coords.latitude; 
     var long = position.coords.longitude; 
     $.ajax({ 
      //YOUR AJAX REQUEST USING LAT, LONG 
     }); 
    } 
+0

仍然無法使用。當我添加數據類型時,成功函數警報不再出現。 – Mdude

+0

然後嘗試添加contentType:「application/json; charset = UTF-8」。 –

+0

成功功能現在可以工作,但Php似乎並沒有收到它。有沒有什麼需要改變的PHP設置? – Mdude