0

We have designed a Progress bar, using Jquery Ui. we need a program that can deliver data in numeric value. That code is not working

PHP CODE

<?php
 ob_start();
 $array = array(10,20,30,40,50,60,70,80,90,100);
 foreach($array as $a ){
echo $a;
 sleep(1);
ob_end_clean();
 }
 echo 100 ;
 ?>

PHP code for echo a single item, it clears the existing data, so that our Ajax program can get the actual numeric data.

Thanks

Fluffeh
  • 33,228
  • 16
  • 67
  • 80
PPS
  • 7
  • 5

1 Answers1

0

You need to send a request to your php script with a parameter if you don't have an actual update:

$(function() {
    $("#progressbar").progressbar({ value: 0 });
    setTimeout(function(){ updateProgress(0); }, 500);
});
function updateProgress(data) {
    $.get(url+'?progress='+data, function(data) {
        // data contains whatever that page returns     
        if (data < 100) {
            $("#progressbar").progressbar({value: parseInt(data)});
            $("#progresstext").html("<p>    Loading...<p>");
            setTimeout(function(){ updateProgress(data); }, 500);
        } else {
            $("#progressbar").progressbar({value: 100});
        }
    }); 
}

and your PHP script:

<?php
    echo (int)$_GET['progress']+10;
?>
Mihai Iorga
  • 39,330
  • 16
  • 106
  • 107
  • Really? And then? The JQuery.ajax success callback handler will magically be called on each sleep? – GolezTrol Sep 12 '12 at 07:27
  • Please explain me, that how can we implement it on Foreach loop(print another data like echo $table ;) we have done almost just 2% left. – PPS Sep 13 '12 at 11:54
  • You can't implement it in a foreach loop, but you can store the progress in a database and check it every 1 second or 2 seconds .. – Mihai Iorga Sep 13 '12 at 11:56