从php session而不是json文件中获取json

时间:2013-09-06 18:47:55

标签: php jquery json

我有这个jquery函数

function updateStatus(){
      $.getJSON("<?php echo $_SESSION['filnavn']; ?>", function(data){

                           var items = [];

                           pbvalue = 0;

                           if(data){

                                var total = data['total'];
                                var current = data['current'];
                                var pbvalue = Math.floor((current / total) * 100);

                                if(pbvalue>0){

                                    $("#progressbar").progressbar({

                                        value:pbvalue
                                    });
                                }
                            }
                            if(pbvalue < 100){

                               t = setTimeout("updateStatus()", 500);
                            }
      });
}

是否可以从PHP会话变量而不是json文件中获取JSON?

据我了解,我可以从会话中获取会话数据,如下所示:

//json test
var jsonstr = $_SESSION['json_status'];
//parse json
var data = JSON.parse(jsonstr);

但是我不知道如何使用getJSON函数做到这一点?

2 个答案:

答案 0 :(得分:1)

你正在阅读太多内容。 .getjson只是一个$ .ajax()调用,EXPECTS从服务器获取json响应。就这样。

无论 WHERE PHP从中获取数据都没关系,只要它吐出json文本。

是否只是从文件/ db中检索json文本,或者使用json_encode()动态生成json文本,只要浏览器接收到json文本,事情就会“起作用”。

答案 1 :(得分:0)

这里最好的选择是创建一个php文件,它可以作为getJSON的目标,从会话中返回json。

 <?php
 session_start();
 if (isset($_SESSION["filnavn"])){
     echo $_SESSION["filnavn"];
     // Or, if the key contains an object instead of a json string, use
     // echo json_encode($_SESSION["filavn"]);
 } else {
     // echo the json you want here if the session variable is not set 
     echo "{}";
 }
 ?>

然后在你的jquery代码中将getJSON更改为此

  $.getJSON("/path/to/php/file.php", function(data){...});