我有这个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函数做到这一点?
答案 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){...});