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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 74 054 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

Messages postés
1
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
4 juillet 2011

Oui c'est vrai je confirme on voit seulement le 100 %. Pour y remédier il faut transformer flush(); en flush(); ob_flush();flush(); ob_flush();. Oui plusieurs fois comme le site ce-dessous le mentionne :
http://forum.alsacreations.com/topic-23-49725-1-Une-barre-de-progression-en-PHP-et-CSS-sans-utiliser-JS.html
Messages postés
1
Date d'inscription
mardi 3 février 2009
Statut
Membre
Dernière intervention
8 octobre 2010

Slt tout le monde. J'ai le meme probleme que toi ORAISER. La barre s'affiche qu'a la fin et n'affiche donc que les 100%. Ce qui met en cause toute l'utilite de ce code.
A mon avis, ca doit venir de la version de php (Code fait en 2005 !!!).
Messages postés
38
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
27 mai 2009

Salut est-ce que cette source peut être utilisée pour un formulaire d'upload de gros fichier? COmme des film ou autres?
Merci.
Messages postés
1
Date d'inscription
lundi 30 novembre 2009
Statut
Membre
Dernière intervention
27 avril 2010

J'ai un peti soucis avec ce code le problème est que la barre ne s'affiche qu'à la fin et donc n'affiche que les 100% cela vient il de moi où il y a des cas similaire
Messages postés
1
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
24 mars 2009

Bonjour,

Ce code m'a l'air de très bonne facture, cependant j'obtiens une erreur:

Warning: fopen(c:/writeFR.swf) [function.fopen]: failed to open stream: No such file or directory in test.php on line 15

La commande du script est celle-ci:

$fichier_local = 'c:/'.basename($fichier_distant);

La barre de progression fonctionne bien, mais elle se bloque à 94%.

Quelqu'un aurait il une solution ? Merci d'avance
Afficher les 79 commentaires

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.