2017-05-30 66 views
1

我有一個名爲'script1.php'的PHP會話文件,它包含'$ position'數組。我想在javascript文件中訪問這個數組的值 。我嘗試使用這個「$ .get('script1.php',function(data){var x = data;});」 命令和'數據'變量我得到{「經度」:12.917186,「緯度」:50.831356}這種結果,但我需要訪問 只有整數,我如何訪問整數值。我已經上傳了php代碼。可有人請幫助我如何 解決這個問題,我是新來的PHP。如何在javascript中訪問php會​​話文件變量或數據?

<?php 
// Start the session 
session_name("mysession"); 
session_start(); 
if(isset($_SESSION["i"])){ 
$i = $_SESSION["i"]; 
} 
else{ 
$i = 0; 
} 

// Set session variables 
$position = array 
(

array(50.831118, 12.916574), 
array(50.831118, 12.918574), 
array(50.831356, 12.917186), 
array(50.831604, 12.917834), 
array(50.831763, 12.918172), 
array(50.831916, 12.918603), 
array(50.832825, 12.918413), 
array(50.833206, 12.918303), 
array(50.832825, 12.918413), 
array(50.831916, 12.918603), 
array(50.831763, 12.918172), 
array(50.831604, 12.917834), 
array(50.831356, 12.917186), 
array(50.831118, 12.918574), 
array(50.831118, 12.916574) 

); 

echo '{"Longitude": '.$position[$i][1].', "Latitude": '.$position[$i] 
[0].'}'; 

$i++; 
if($i > count($position)){ 
$i = 0; 
} 

$_SESSION["i"] = $i; 

JavaScript代碼存儲在數據變量 { 「經度」:12.917186, 「緯度」:50.831356}

$.get('script1.php', function (data) 
{ 
var x = data; 
}); 

+0

您需要解碼JSON字符串轉換爲對象,如JSON.parse(data) –

回答

4

輸出所需的變量,刪除其他回波。

echo json_encode(array('i' => $_SESSION["i"])); 

使用getJSON並訪問該變量。

$.getJSON('script1.php', function (data) 
{ 
    console.log(data.i); 
}); 

旁註:從來沒有像你手動構建JSON。總是創建一個數據結構,然後JSON編碼它,因爲它處理任何轉義和特殊字符。

0

你不能在JS中獲得會話變量。您必須將所需內容存儲在(隱藏)輸入字段中或使用阿賈克斯字段

0

而不是手動創建json,您應該在具有所需結構的數組/對象上使用phps json_encode。 你也應該設置正確的內容類型頭,然後jQuery將自動解析結果:

// Start the session 
session_name("mysession"); 
session_start(); 
if(isset($_SESSION["i"])){ 
    $i = $_SESSION["i"]; 
} 
else{ 
    $i = 0; 
} 

// Set session variables 
$position = array 
(

array(50.831118, 12.916574), 
array(50.831118, 12.918574), 
array(50.831356, 12.917186), 
array(50.831604, 12.917834), 
array(50.831763, 12.918172), 
array(50.831916, 12.918603), 
array(50.832825, 12.918413), 
array(50.833206, 12.918303), 
array(50.832825, 12.918413), 
array(50.831916, 12.918603), 
array(50.831763, 12.918172), 
array(50.831604, 12.917834), 
array(50.831356, 12.917186), 
array(50.831118, 12.918574), 
array(50.831118, 12.916574) 

); 

$data = array(
    "lat" => $position[$i][0], 
    "long" => $position[$i][1], 
); 

$i++; 
if($i > count($position)){ 
$i = 0; 
} 

$_SESSION["i"] = $i; 

header('Content-Type: application/json'); 
die(json_encode($data)); 

然後在你的JavaScript可以訪問data作爲一個普通JS對象:

$.get('script1.php', function(data){ 
    console.log(data.lat); //50.831118 
    console.log(data.long); //12.916574 
});