想法是在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执行此操作?
答案 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。