2012-09-13 1 views
0

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

+0

이 질문을하면서, 몇 가지 노력을 내가 모든 코드를 읽을 필요가 마십시오 ?? .. 정확하게 우리가 필요로하는 문제 – amd

+0

, PHP에 내장 된 우리 프로그램 자체에 대한 진행률 표시 줄이 무엇인지 지정하십시오. 위에서 우리는 PHP로부터 가치를 얻기 위해 jquery 함수를 적용했다. 하지만 우리가 처음 진행 표시 줄을 시작할 수 없습니다, 다음 demo.php에서 얻는 데이터의 나머지 – PPS

답변

1

인가? 그렇다면 sleep(1)sleep(1000)으로 바꾸면 표시자가 요청한 시점까지 demo.php가 실제로 완료되었을 수 있습니다.

+1

() 플러시 ob_flush를(),()위한 ob_start 구현하는 것이 가능합니까? – PPS

관련 문제