簡體   English   中英

如何在javascript中訪問php會​​話文件變量或數據?

[英]How to access php session file variable or data in javascript?

我有一個名稱為'script1.php'的php會話文件,其中包含'$ position'數組。 我想在javascript文件中訪問此數組的值。 我嘗試使用此“ $ .get('script1.php',函數(data){var x = data;});” 命令並在“數據”變量中,我得到{“經度”:12.917186,“緯度”:50.831356}這種結果,但是我只需要訪問整數,我如何訪問整數值。 我已經上傳了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代碼

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

存儲在數據變量{“經度”:12.917186,“緯度”:50.831356}中的值

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

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

使用getJSON並訪問變量。

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

旁注:永遠不要像您那樣手動構建JSON。 始終創建一個數據結構,然后對其進行JSON編碼,因為它可以處理任何轉義和特殊字符。

您無法在JS中獲得會話變量。 您必須將所需的內容存儲在(隱藏的)輸入字段中或對其使用ajax

而不是手動創建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
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM