PHP进度条可以与$ _SESSION一起使用吗?

时间:2012-09-13 11:32:17

标签: php javascript jquery jquery-ui progress-bar

我们希望将Jquery Progress bar与PHP集成。我们已经实现了$ _SESSION,但根据我们的要求,我们没有得到确切的值。

请查看我们的代码。

HTML

<!DOCTYPE html>
<html>
<head> 
    <title>Jump for Joy</title> 
    <link href="styles/my_style.css" rel="stylesheet">
    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<style type="text/css">



 #bardivs {
   width:400px;
  position:relative;
  }
 #progresstext {
position:absolute;
top:0;
left:0;
}
 </style>
   <script>
   $(document).ready(function() {
       $("#sub").click( function() {
$.ajax({ 
  type : 'POST',
  url : 'http://localhost/tools/ip/html/demo.php',
  dataType : 'html',
  data: {
      camp_url : $('#camp_url').val(),
      captcha :  $('#captcha').val()
  },
  success : function(data){
  $('#message').removeClass().addClass(data).html(data).show(500);
  $("#progressbar").delay(100).hide(200);}


});
  var url = "http://localhost/tools/ip/html/xyz.php";
$(function() {
    $("#progressbar").progressbar({ value: 0 });
    setTimeout(function(){ updateProgress(0); }, 1000);
});

function updateProgress(data) {
    $.get(url+'?progress='+data, function(data) {
        // data contains whatever that page returns     
        if (data < 100) {
            $("#progressbar").progressbar({value: parseInt(data)});
            setTimeout(function(){ updateProgress(data); }, 1000);
    } else {
        $("#progressbar").progressbar({value: 100});
        $("#progressbar").delay(100).hide(200);
        }


  }); 
}
   });
 });
 </script>
    </head> 
    <body>
    <div id="header">
            <h2>Jump for Joy Sale</h2>
        </div>
           <div id="main">
            <div id="bardivs">
    <div id="progressbar"></div> 
    <div id="progresstext"></div>
    </div>
           <div id="message"  style="display: none;">
</div>
 <input type="submit" name="check" id="sub" value="submit">
    </div>
</body>
 </html>

demo.php

<?php
session_start();
$set = $_SESSION['size'] ;
$array = array(100,200,300,400,500,600,700,800,900,1000);
$ab = 1 ;
@$size=sizeof($array);
$size = round(100/$size);
foreach($array as $a){
    echo $a ;
    sleep(1);
$_SESSION['size'] = $set + $size ;  
}
?>

xyz.php

<?php
session_start();
if(@$_SESSION['size'] <=100) {
    header("Refresh: 1; url=xyz.php");
}
@$_SESSION['size'];
   $set = (int)@$_GET['progress'] + @$_SESSION['size'];
   echo (int)$set ;
?>

我们在进度条处理后获取数据,但没有获得进度条。

谢谢

PPS

1 个答案:

答案 0 :(得分:1)

这正是您使用的代码吗?如果是这样,请为sleep(1)切换sleep(1000),这可能只是在指标发出请求时,demo.php实际上已完成。