我在 PHP session 中存储了数组值。
现在我想检索这个数组并将其转换为 javascript 数组。
这是我设置 PHP session 的方式:
var listone = ["one", "two", "three"];
function setSession(listone){
$.get(
"setSession.php",
{listone:listone}
);
}
因此,如果一旦设置了这些值并刷新页面,我就会检查 session 是否已设置。如果设置,我想做这样的事情:
<?php
session_start();
if(isset($_SESSION['listone']))
{
?>
listone = Array('<?php echo json_encode($_SESSION['listone']) ?>');
<?php
}
?>
当我这样做时,'listone' 数组显示如下:
listone[0] = [
listone[1] = "
listone[2] = o
listone[3] = n
listone[4] = e
listone[5] = "
.... etc
我知道我做错了什么。 这是我在 PHP session 中存储数组的方式吗? 或者 这是我将它检索回 JS 的方式吗?
感谢您的指点。如果指导得当,我愿意挖掘更多 :)
最佳答案
您可能正在尝试在这里做两件事之一 - 与 AJAX 相关的事情,它期待 JS 响应,或者您正在尝试直接在 JS 中访问 session 变量。
如果你只是想将一个 PHP 变量转换为一个 JS 可读数组,你可以这样做:
json_encode($_SESSION['myarray']);
这需要是一个可读的响应,并可由 JS 脚本在别处解释(例如,AJAX 响应)。
PHP session 变量不能通过 JS 直接访问,但是,您可以在 PHP 中构建 JS,将两者包装在一起,这样您就可以使用 PHP 输出 JS,其中填充了 PHP session 变量中保存的数据。这里的关键是代码的顺序,以及你的 JS 的结构——即你可能想要引用一个全局 JS 变量,以便其他 JS 可以访问这些值——或者调用一个函数等...
所以,你可以:
session_start();
if(!isset($_SESSION['myarray'])){
$_SESSION['myarray']=array('one', 'two', 'three');
}
echo "<script type='text/javascript'>
var myJSvariable = new Array();";
foreach($_SESSION['myarray'] as $key=>$value){
echo "myJSvariable[".$key."]=".$value.";";
}
echo "</script>";
关于php - 将 PHP session 数组值导入 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7645225/