Progressbar (barre de progression avec affichage du pourcentage en cours)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 72 415 fois - Téléchargée 28 fois

Contenu du snippet

Voici une fonction qui affiche dynamiquement une barre de progression avec le pourcentage en cours.

Le fichier qui contient les procédures du progressbar est "progressbar.php"

Mode d'utilisation dans votre script:

1/ charger le fichier : include ("progressbar.php");
2/ initialisation de la barre : Initialize(x,y,largeur,hauteur,'couleur bordure','couleur du pourcentage','couleur de la barre de progression');
3/ Insertion de ProgressBar($i); dans votre boucle:

Source / Exemple :



                                                                • progressbar.php
<?php function Initialize($gauche,$haut,$largeur,$hauteur,$bord_col,$txt_col,$bg_col) { $tailletxt=$hauteur-10; echo '<div id="pourcentage" style="position:absolute;top:'.$haut; echo ';left:'.$gauche; echo ';width:'.$largeur.'px'; echo ';height:'.$hauteur.'px;border:1px solid '.$bord_col.';font-family:Tahoma;font-weight:bold'; echo ';font-size:'.$tailletxt.'px;color:'.$txt_col.';z-index:1;text-align:center;">0%</div>'; echo '<div id="progrbar" style="position:absolute;top:'.($haut+1); //+1 echo ';left:'.($gauche+1); //+1 echo ';width:0px'; echo ';height:'.$hauteur.'px'; echo ';background-color:'.$bg_col.';z-index:0;"></div>'; } function ProgressBar($indice) { echo "\n<script>"; echo "document.getElementById(\"pourcentage\").innerHTML='".$indice."%';"; echo "document.getElementById('progrbar').style.width=".($indice*2).";\n"; echo "</script>"; flush(); // explication : http://www.manuelphp.com/php/function.flush.php } ?>
                                                                • index.php
<html> <body> <?php include ("progressbar.php"); //Initialize(x,y,largeur,hauteur,'couleur bordure','couleur du pourcentage','couleur de la barre de progression'); Initialize(50,60,200,30,'#000000','#FFCC00','#006699'); // initialisation de la barre de progression for ($i=0;$i<=100;$i++) { ProgressBar($i); // réaffichage de la barre avec le nouvel indice //*********************** // ici on mets notre code for ($j=0;$j<=100000;$j++) {$p=1;} // dans cette exemple, j'ai une boucle de retardement //************************** } ?> </body> </html>

Conclusion :


Testé sur FireFox, IE6 .

Vous remarquerez que le code n'est pas entièrement paramètrable néanmoins je ferai des mises à jour selon vos commentaires..

Bonne continuation.

A voir également

Ajouter un commentaire

Commentaires

NeoZer0
Messages postés
9
Date d'inscription
lundi 7 juillet 2003
Statut
Membre
Dernière intervention
20 juin 2006
-
je cromprend pas trop l'interet?
cs_frop01
Messages postés
1356
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
19 novembre 2008
1 -
LoL !
tout simplement pour connaitre l'état d'avancement d'un tâche précise et que pour l'utilisateur ne s'ennuie pas et faire la fenetre par doute que le site est planté !!

Si par exemple tu es entrain de copier un fichier de 50 Mo d'un serveur distant à un dique local !! comment savoir l'état d'avancement ???
ou bien une longue et dure recherhce dans une base de données qui peut durer 1 minute comment savoir si ca marche ou pas ??

Ben il ya des milliers de bonnes raison d'utiliser ce script !!

Je suis pas un commercial mais J'espère t'avoir convaincu !! ;)
lumesh
Messages postés
564
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
7 novembre 2008
-
oui mais un truc ... le PHP est serveur/Side, le javascript est comment dire executé par ton naviguateur.
Tout ce qui est serveur/Side n'est pas encore vu par le naviguateur. Le PHP ne fait que créer du code HTML en fonction de conditions c'est tout. Donc en gros la progression d'une boucle en PHP ne se verra pas par ton naviguateur mais sera effectuée avant que la page soit affichée par celui-ci.

Par conscequent je ne comprend mais alors pas dutout de l'interet d'une telle source en PHP .... en javascript okay, peut etre, en ASP (pourquoi pas grace a l'interraction possible avec le naviguateur IE via le vbscript et le javascript) et encore mais la en PHP je doute sincerement !!!!

Enfin bon. Pas convaincu du tout.
zeratul67
Messages postés
98
Date d'inscription
mardi 9 avril 2002
Statut
Membre
Dernière intervention
11 mai 2008
-
Tentrative de réponse pour Lumesh : parfois, une grosse opération peut être effectuer en PHP en forcenant le rechargement de la même page, plusieurs fois (pour éviter de dépasser le temps d'exécution maximum autorisé sur un serveur par exemple). Dans ce cas, on peut afficher une progress bar, mise à jour entre chaque rechargement.
lumesh
Messages postés
564
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
7 novembre 2008
-
oui ca peut etres une idee et encore que bon une grosse operation ralentit deja le chgargrment dune page ce qui en gros ne plait pas au visiteur donc ouaip pourquoi pas .... toutjours pas convaincu mais bon le principal est que tu en as l'utilité.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.