<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
  <script src="http://cdn.bootcss.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
  <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css">
  <div class="container">
<div class="progress progress-striped">
   <div class="progress-bar progress-bar-primary" id="processbar" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" style="width:0%">
     <span id="aa">80% 完成</span>
   </div>
</div>
</div>
<script type="text/javascript">
var total=10000;
var breaker=100;
var turn=100/(total/breaker);
var progress=0;
var timer = setInterval(function(){
    progress=progress+turn;
    $("#aa").html(progress+"% 完成");
    $("#processbar").attr("style", "width:"+progress+"%");
    if (progress>=100) {
        clearInterval(timer);
    }
}, breaker);
</script>
<?php 
for($i=1;$i<100;$i++){
echo $i."%";
ob_flush();
flush();
sleep(1);
}?>
请问我该怎么把php中运行的$i变量值实时的输出到上的JS中,引导进度条正确的显示?
现在你看到的显示和下面的for循环毛关系没有!!!
求教

解决方案 »

  1.   

    你的
    for($i=1;$i<100;$i++){
        echo $i."%";
        ob_flush();
        flush();
        sleep(1);
    }
    本来就是自欺欺人的扯淡做法
    何况代码本身都不能可靠运行
      

  2.   


     <div class="container">
            <div class="progress progress-striped">
                  <div class="progress-bar progress-bar-primary" id="processbar" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" style="width:0%">
                    <span id="aa">80% 完成</span>
                  </div>
            </div>
        </div>
    <script type="text/javascript">
    function updateProgress(progress){
        $("#aa").html(progress+"% 完成");
        $("#processbar").attr("style", "width:"+progress+"%");
    }</script>
    <?php
    for($i=1;$i<100;$i++){
        echo "<script>updateProgress(".$i.");</script>";
        ob_flush();
        flush();
        sleep(1);
    }
    ?>搞定!