如何在JavaScript中访问php会​​话文件变量或数据?

时间:2017-05-30 10:04:52

标签: javascript php

我有一个名为'script1.php'的php会话文件,其中包含'$ position'数组。我想访问的值 这个数组在javascript文件中。我尝试使用这个“$ .get('script1.php',function(data){var x = data;});” 命令和'数据'变量我得到{“经度”:12.917186,“纬度”:50.831356}这种结果,但我需要访问 只有整数,我怎样才能访问整数值。我上传了php代码。有人可以帮我怎么样 解决这个问题我是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}

3 个答案:

答案 0 :(得分:4)

输出您想要的变量,删除另一个回声。

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

使用getJSON并访问变量。

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

旁注:永远不要像你一样手动构建JSON。始终创建一个数据结构然后JSON编码它,因为它处理任何转义和特殊字符。

答案 1 :(得分:0)

您无法在JS中获取会话变量。您必须将所需内容存储在(隐藏)输入字段中或使用ajax

答案 2 :(得分:0)

您应该在具有所需结构的数组/对象上使用phps json_encode,而不是手动创建json。 您还应该设置正确的内容类型标头,然后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
});