0

想法是在 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 做到这一点吗?

4

2 回答 2

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 进度条。

于 2013-04-19T18:54:14.497 回答
1

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

如果您想监控服务器端进程,您将不得不使用不同的方法,例如通过 ajax。

于 2013-04-19T18:50:50.650 回答