1

我有这个 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 函数我怎么能做到这一点?

4

2 回答 2

1

你读得太多了。.getjson 只是一个 $.ajax() 调用,期望从服务器获取 json 响应。就这样。

PHP 从哪里获取数据并不重要,只要它吐出 json 文本即可。

无论该 json 文本是刚刚从文件/数据库中检索到,还是使用 json_encode() 动态生成,只要浏览器接收到 json 文本,一切都会“工作”。

于 2013-09-06T18:50:03.427 回答
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){...});
于 2013-09-06T19:01:32.537 回答