如何在更改的PHP变量上更改jQuery progressbar状态?

时间:2013-04-19 18:43:49

标签: php jquery-ui progress-bar

想法是在PHP变量更改时更新进度条值:

 <script>
    $(function() {
       $( "#progressbar" ).progressbar({
          value: <?php echo $_SESSION['value'] ?>
       });
    });
 </script>

我试过了:

    <?php 
        $_SESSION['value'] = 10; 
            sleep(2);
        $_SESSION['value'] = 30;
            sleep(2);
        $_SESSION['value'] = 50;
            sleep(2);
        $_SESSION['value'] = 70;
            sleep(2);
        $_SESSION['value'] = 90;        
    ?>

但进度条仅设置为变量90。我希望它随着变量值的变化不断更新五次。

是否可以使用jQuery和PHP执行此操作?

2 个答案:

答案 0 :(得分:2)

这是可能的,但仅使用AJAX作为javascript无法访问PHP会话。

javascript仅在PHP文件执行完毕后才会运行,这就是为什么你只看到它用最后一个值更新。

JS:

setInterval(function() {
    $.get("currentProgress.php", function(data) {
        $("#progressbar").progressbar({
          value: data
        });
    });
}, 1000); // updates every second

PHP文件:

<?php
    // work out the current progress of whatever you're checking on
    echo $value;
?>

更新:也许这就是您所追求的更多内容:http://w3shaman.com/article/php-progress-bar-script - 可以轻松修改它以包含jQuery进度条。

答案 1 :(得分:1)

$_SESSION仅存在于服务器端,因此在您的浏览器收到响应之前,它将经历所有五个阶段。将传输的值为90

如果要监控服务器端进程,则必须使用其他方法,例如:通过ajax。