php - 将 PHP session 数组值导入 Javascript

标签 php javascript jquery

我在 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/

相关文章:

php - 如何在网页的下拉菜单中识别所选元素

php - 日期无法显示

javascript - 使用javascript交换行

javascript - 如何从 RxJS combineLatest 和 NGRX store source observable 中删除 transient 事件

javascript - 让 jQuery 下拉菜单在悬停时显示

php - 代码点火器 3 : Can't catch database error using try catch block

PHP:验证表单并显示警报

javascript - 用 jquery 覆盖 div 元素的宽度 - IE 错误?

javascript - 修改 jquery 幻灯片代码以自动播放

jQuery 自定义工具提示(不是 ui)仅在 IE7 中不起作用