我有一个名为'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}
答案 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
});