【问题标题】:How to get Session value which is an array in JavaScript?如何获取 Session 值,它是 JavaScript 中的一个数组?
【发布时间】:2016-04-12 18:06:02
【问题描述】:

我在一个 php 页面中设置了一个会话,该页面存储了一个数组,如下所示:

首页.php

   $_SESSION["Counts"]=$some_array;
   echo print_r($_SESSION["Counts"]); 

输出:

Array ( [Finance] => Array ( [0] => 0 [1] => 3 [2] => 0 [3] => 0 [4] => 1 ) 
[Human resources] => Array ( [0] => 1 [1] => 5 [2] => 1 [3] => 0 [4] => 0 )
[Infrastructure] => Array ( [0] => 0 [1] => 3 [2] => 1 [3] => 0 [4] => 0 ) ) 1

在 .js 页面中检索会话数据 SecondJSpage.js

<script type="text/javascript">
var sessionValue= new Array();
var s= new Array();
var s1= new Array();

sessionValue = '<?php $_SESSION["Counts"]; ?>';
document.write(sessionValue);   //Does not output anything

for( s1 in sessionValue) {
for( s in s1) {

    document.write(s);     //Does not output anything
    document.write("<br />");
}}
</script>

只有数组没有被检索。一个简单的会话变量正在显示。如何解决这个问题?

【问题讨论】:

    标签: javascript php arrays session


    【解决方案1】:

    把这条线稍微改一下..

    sessionValue = <?php echo json_encode($_SESSION["Counts"]); ?>;
    

    【讨论】:

    • 没关系...我不想以任何方式回显..只需初始化
    • @AishwaryaR 这就是您为 javascript 回显数组的方式。试试看。
    • 不是我(我们都被打败了),但我猜这是因为你的答案实际上不是有效。在像 OP(SecondJSpage.js)这样的 javascript 文件中,由于明显的原因,您的答案将无法解析(因为 PHP 不会在 .js 文件中解析,除非您在后端使用了一些魔法,但我怀疑 OP 是否做到了) .我只是完全按照 OP 在他最初的帖子中所写的内容:“在 .js 页面 SecondJSpage.js 中检索会话数据”
    • @Marcus - 我没有注意到这一点,但我确实注意到了 &lt;script&gt; 标记,它们不在 .js 文件中。当用户自相矛盾时,在你相信描述之前相信代码..
    • 我也看到了。正如您所说,看到&lt;script&gt;...&lt;/script&gt; 通常意味着 JS 嵌入在 PHP 中(有意义)。但是,确切地阅读 OP 在单独的 .js 文件中所写的内容让我走上了一条不同的道路。但是谁知道他的代码到底出了什么问题。他接受了你的回答为working,所以你可能是对的,它实际上是在 PHP 中,而不是在单独的 .js 文件中。
    【解决方案2】:

    为此使用json_encode()(Javascript 可以处理 JSON)。

    查看手册:http://php.net/json_encode

    【讨论】:

    • JSON 中的 J 和 S 代表 Javascript ;P
    • @Pamblam:是的,确切地说,我只是想为用户澄清一下。 :)
    • json_encode() 工作。但是在javascript中使用php可以吗...?
    • 是的,没关系,您只需在 HTML 输出中添加额外的文本。
    【解决方案3】:

    你不能echo一个数组。

    <?php echo $_SESSION["Counts"]; // this is an array ?>
    

    你也不能在 .js 文件中执行 PHP(试图在 SecondJSpage.js 中解析 PHP)

    【讨论】:

    • Yaa,因为 php 是服务器端脚本。这不是获取会话的有效方式吗?那我应该如何在 js 中使用会话?
    • 您可以内联 javascript,使其嵌入到您的 PHP 文件 (firstpage.php) 中。但是你不能创建一个单独的 .js 文件并在其中执行 PHP。
    猜你喜欢
    • 2012-10-18
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 2016-07-05
    • 2020-02-10
    • 2021-10-10
    • 2015-12-19
    相关资源
    最近更新 更多