2014-02-20 100 views
-1

我該如何在Javascript中使用PHP?我正在嘗試使PHP會話變量等於來自JS的地理位置值。這可能嗎?PHP會話變量等於Javascript值

PHP

$_SESSION['latitude'] = ? 
$_SESSION['longitude'] = ? 

地理位置功能的Javascript:

function getLocation() 
{ 
if (navigator.geolocation) 
{ 
navigator.geolocation.getCurrentPosition(showPosition); 
} 
else{x.innerHTML="Geolocation is not supported by this browser.";} 
} 
function showPosition(position) 
{ 
document.getElementById('showlat').innerHTML = position.coords.latitude; 
document.getElementById('showlong').innerHTML = position.coords.longitude; 
} 
+0

您無法使用JavaScript設置PHP中的值。我認爲你需要了解哪些代碼在哪裏處理。在服務器上處理PHP,然後傳遞頁面,在那裏您的JavaScript可以由瀏覽器處理,這樣您就可以看到,無需刷新頁面或移動到其他頁面,它就無法以其他方式返回。 – jdcookie

+0

好像類似的東西已經沒有被問過千次了...... – CBroe

回答

1

您可以使用JavaScript來讓你的服務器,這反過來又設置了PHP的異步請求的腳本會話變量。除此之外,我認爲沒有其他辦法。

+0

感謝您的建議@ragingprodigy – user2192094

0

在JavaScript中,您可以製作一個HTTPXMLRequest以將您的JavaScript數據「發佈」到PHP。更簡單的方法是使用JQuery調用$.ajax方法,該方法比舊式HTTPXMLRequest佈局更好一些。 製作一個JavaScript變量來存儲地理數據並通過ajax作爲JSON數據發送。 PHP將通過POST或GET接收這些數據,並且可以像接收來自HTML的表單數據一樣使用它。

JS防爆)

var lat = 'what ever the latitude is'; 
var longi = 'what ever the longitude is'; 

$.ajax(
{ 
    url:'what ever your php page is', 
    type:'post', 
    data:{latitude:lat,longitude:longi}, 
    success:function(data) 
    { 
      console.log(data+' was sent successfully'); 
    }, 
    error:function() 
    { 
      console.log('data was NOT sent'); 
    } 
}); 

PHP例)

<?php 
session_start(); 
$_SESSION['longitude']=$_POST['longitude']; 
$_SESSION['latitude']=$_POST['latitude']; 

?> 
+0

謝謝@ 13ruce1337爲您解釋。我現在明白了。 – user2192094

0

確保你的PHP文件已在session_start();否則ajax調用將不起作用。