使用JS刷新php变量

时间:2013-08-09 20:09:19

标签: php jquery

刷新PHP变量时遇到问题... 刷新后的PHP变量仍然相同 - 不刷新

我的小JS:

var reload = function() {
    var pred = <?php Echo json_encode(reload()); ?>;

    $(".reload").fadeIn("fast").text(pred);
    setTimeout(reload, 3000);
}
setTimeout(reload, 3000);

我的PHP功能:

function reload() {
        ForEach ($servers as $server) {
            $s = Explode(":", $server);
            $Data = $status->getStatus($s[0], $s[1]);
            If (!$Data) {} Else { $c1 = $c1 + $Data['Players']; } 
        }
        Return $c1; //Players returned 
}

如果我在此脚本中加入游戏,则该变量与开始时相同... 没有任何改变。为什么我的变量不清爽?我做错了什么?

感谢所有帮助,对不起我的坏人

2 个答案:

答案 0 :(得分:3)

reload()只被调用一次:当脚本第一次执行时。在将任何输出(包括HTML和JavaScript)发送到浏览器之前,所有PHP处理都在服务器端完成。

当您的JavaScript函数执行时,它会重新使用脚本第一次运行时reload()生成的值。

如果要通过PHP生成新值,则需要刷新页面或创建AJAX调用以从服务器获取新数据。

答案 1 :(得分:0)

这样的东西
var reload = function() {
    $.getJSON('reload.php', function(data){
         $(".reload").fadeIn("fast").text(data);
         setTimeout(reload, 3000);
    });
}

reload();
你的reload.php文件中的

function reload() {
        ForEach ($servers as $server) {
            $s = Explode(":", $server);
            $Data = $status->getStatus($s[0], $s[1]);
            If (!$Data) {} Else { $c1 = $c1 + $Data['Players']; } 
        }
        Return $c1; //Players returned 
}

echo json_encode(reload());