begin process at 2010 02 10 10:54:05
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > PROGRESS BAR : CLASSE PHP4

PROGRESS BAR : CLASSE PHP4


 Information sur la source

Note :
9,83 / 10 - par 6 personnes
9,83 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :barre, progression, classe, timeout Niveau :Débutant Date de création :10/08/2005 Date de mise à jour :10/08/2005 23:23:19 Vu :11 902

Auteur : davwart

Ecrire un message privé
Site perso
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Cette classe est basée directement sur le code de "frop01" qui se trouve ici:
http://www.phpcs.com/code.aspx?id=32601

J'en ai juste fait une classe (et fait qques changement (timeout, ajout de texte, hide,..) car j'en avais besoin, et donc..ça peut servir..

je l'ai testé sous Firefox, je pense qu'elle doit fonctionne sous IE..

Source

  • //la classe (fichier class_progressbar.inc)
  • <?php
  • class ProgressBar{
  • //----------------- parameters -----------------
  • // position parameters
  • var $top=60;
  • var $left=50;
  • var $width=200;
  • var $height=30;
  • //color parameters
  • var $border_color='#000000';
  • var $percent_color='#FFCC00';
  • var $txt_color='#000000';
  • var $background_color='#006699';
  • //size parameters;
  • var $percent_size=15;
  • var $txt_size=15;
  • //html parameter
  • //----------------- private functions -----------------
  • function Hide(){
  • echo '<script>';
  • echo 'document.getElementById("myprogressbar").style.display="none";';
  • echo "</script>";
  • }
  • //----------------- public functions -----------------
  • function setPosition($left,$top, $width, $height){
  • $this->top=$top;
  • $this->left=$left;
  • $this->width=$width;
  • $this->height=$height;
  • }
  • function setColors($border_color,$percent_color,$txt_color,$background_color){
  • $this->border_color=$border_color;
  • $this->percent_color=$percent_color;
  • $this->txt_color=$txt_color;
  • $this->background_color=$background_color;
  • }
  • function setSizes($percent_size, $txt_size){
  • $this->percent_size=$percent_size;
  • $this->txt_size=$txt_size;
  • }
  • function generateHTML(){
  • $html='<div id="myprogressbar" style="display:block;position:absolute;top:'.$this->top;
  • $html.=';left:'.$this->left;
  • $html.=';width:'.$this->width.'px;">';
  • //progress bar div
  • $html.='<div id="progrbar" style="position: relative; top: 0px';
  • $html.=';left: 1px';
  • $html.=';width:0px';
  • $html.=';height:'.$this->height.'px';
  • $html.=';background-color:'.$this->background_color.';z-index:0;"></div>';
  • //percent div
  • $html.='<div id="percent" style="position:relative;top:-'.($this->height+1).'px';
  • $html.=';left: 0px';
  • $html.=';width: 100%';
  • $html.=';height:'.$this->height.'px;border:1px solid '.$this->border_color.';font-family:Tahoma;font-weight:bold';
  • $html.=';font-size:'.$this->percent_size.'px;color:'.$this->percent_color.';z-index:1;text-align:center;">0%</div>';
  • //text div
  • $txttop=$this->top+1+$this->height+1;
  • $html.='<div id="progrbartxt" style="position:relative;top:-'.($this->height).'px';
  • $html.=';left:0px';
  • $html.=';width: 100%';
  • $html.=';text-align:center';
  • $html.=';font-size:'.$this->txt_size.'px;color:'.$this->txt_color.';z-index:1;text-align:center;">loading</div>';
  • $html.='</div>';
  • return $html;
  • }
  • function SetTimeOut($timeout){
  • set_time_limit($timeout); //need safe mode off !
  • }
  • function SetPercent($percent, $text=""){
  • echo '<script>';
  • echo 'document.getElementById("percent").innerHTML="'.$percent.'%";';
  • echo 'document.getElementById("progrbar").style.width="'.($percent*2).'";';
  • if (!empty($text))
  • {
  • echo 'document.getElementById("progrbartxt").innerHTML="'.$text.'";';
  • }
  • echo '</script>';
  • flush();
  • }
  • function End($hide=true){
  • echo '<script>';
  • echo 'document.getElementById("percent").innerHTML="100%";';
  • echo 'document.getElementById("progrbar").style.width="200";\n';
  • echo 'document.getElementById("progrbartxt").innerHTML="loaded !";';
  • echo '</script>';
  • flush();
  • if (!empty($hide))
  • $this->Hide();
  • }
  • }
  • ?>
  • //la page de test
  • <html>
  • <body>
  • <?php
  • include ('class_progressbar.inc');
  • $pb=new ProgressBar;
  • //optional
  • $pb->setPosition(200, 50, 200, 20); //optionnal (default value are defined)
  • $pb->setColors('#000000','#FFCC00','#FF0000','#006699'); ////optionnal (default value are defined)
  • $pb->setSizes(15, 18);
  • $pb->setTimeout(30);
  • //generate html
  • echo $pb->generateHTML();
  • //simulate a "time consuming" task
  • for ($i=0;$i<=100;$i++)
  • {
  • $pb->setPercent($i,'loading message');
  • for ($j=0;$j<=100000;$j++) {$p=1;}
  • $p=1;
  • }
  • //end the progress bar (and hide it when finished)
  • $pb->End(); //or $pb->End(false) to avoid hidding progress bar
  • ?>
  • <div style="positon:relative">your document is now loaded !</div>
  • </body>
  • </html>
//la classe (fichier class_progressbar.inc)
<?php

class ProgressBar{

//----------------- parameters -----------------
	// position parameters
	var $top=60;
	var $left=50;
	var $width=200;
	var $height=30;

	//color parameters
	var $border_color='#000000';
	var $percent_color='#FFCC00';
	var $txt_color='#000000';
	var $background_color='#006699';
	
	//size parameters;
	var $percent_size=15;
	var $txt_size=15;

	//html parameter

//----------------- private functions -----------------
	function Hide(){
		echo '<script>';
		echo 'document.getElementById("myprogressbar").style.display="none";';
		echo "</script>";
	}

//----------------- public functions -----------------
	function setPosition($left,$top, $width, $height){
		$this->top=$top;
		$this->left=$left;
		$this->width=$width;
		$this->height=$height;		
	}

	function setColors($border_color,$percent_color,$txt_color,$background_color){
		$this->border_color=$border_color;
		$this->percent_color=$percent_color;
		$this->txt_color=$txt_color;
		$this->background_color=$background_color;
	}

	function setSizes($percent_size, $txt_size){
		$this->percent_size=$percent_size;
		$this->txt_size=$txt_size;
	}
	
	function generateHTML(){
		$html='<div id="myprogressbar" style="display:block;position:absolute;top:'.$this->top;
		$html.=';left:'.$this->left;
		$html.=';width:'.$this->width.'px;">';

		//progress bar div
		$html.='<div id="progrbar" style="position: relative; top: 0px';
		$html.=';left: 1px';
		$html.=';width:0px';
		$html.=';height:'.$this->height.'px';
		$html.=';background-color:'.$this->background_color.';z-index:0;"></div>';

		//percent div		
		$html.='<div id="percent" style="position:relative;top:-'.($this->height+1).'px';
		$html.=';left: 0px';
		$html.=';width: 100%';
		$html.=';height:'.$this->height.'px;border:1px solid '.$this->border_color.';font-family:Tahoma;font-weight:bold';
		$html.=';font-size:'.$this->percent_size.'px;color:'.$this->percent_color.';z-index:1;text-align:center;">0%</div>';
		
		//text div
		$txttop=$this->top+1+$this->height+1;
		$html.='<div id="progrbartxt" style="position:relative;top:-'.($this->height).'px';
		$html.=';left:0px';
		$html.=';width: 100%';
		$html.=';text-align:center';
		$html.=';font-size:'.$this->txt_size.'px;color:'.$this->txt_color.';z-index:1;text-align:center;">loading</div>';
		
		$html.='</div>';		
		return $html;
	}

	function SetTimeOut($timeout){
		set_time_limit($timeout); //need safe mode off !
	}
	
	function SetPercent($percent, $text=""){
		echo '<script>';
		echo 'document.getElementById("percent").innerHTML="'.$percent.'%";';
		echo 'document.getElementById("progrbar").style.width="'.($percent*2).'";';
		if (!empty($text))
		{
			echo 'document.getElementById("progrbartxt").innerHTML="'.$text.'";';
		}
		echo '</script>';
		flush();
	}	

	function End($hide=true){
		echo '<script>';
		echo 'document.getElementById("percent").innerHTML="100%";';
		echo 'document.getElementById("progrbar").style.width="200";\n';
		echo 'document.getElementById("progrbartxt").innerHTML="loaded !";';
		echo '</script>';
		flush();
		if (!empty($hide))
			$this->Hide();		
	}

}
?>

//la page de test
<html>
<body>
<?php
 include ('class_progressbar.inc');
$pb=new ProgressBar;

//optional
$pb->setPosition(200, 50, 200, 20); //optionnal (default value are defined)
$pb->setColors('#000000','#FFCC00','#FF0000','#006699'); ////optionnal (default value are defined)
$pb->setSizes(15, 18);
$pb->setTimeout(30);

//generate html
echo $pb->generateHTML();

//simulate a "time consuming" task
for ($i=0;$i<=100;$i++)
{
	$pb->setPercent($i,'loading message');
	for ($j=0;$j<=100000;$j++) {$p=1;}
		$p=1;
}
//end the progress bar (and hide it when finished)
$pb->End(); //or $pb->End(false) to avoid hidding progress bar
?>
<div style="positon:relative">your document is now loaded !</div>
</body>
</html>

 Conclusion

- des erreurs javascript sont générées... je les corrigerai ASAP.


 Historique

10 août 2005 23:23:19 :
- erreure de manip :)

 Sources du même auteur

Source avec Zip Source avec une capture PHOTOS ALBUMS MANAGER
Source avec Zip Source avec une capture FIREFOX BOOKMARKS -> HTML GENERATION
PING IP ET CHECK DE PORTS

 Sources de la même categorie

Source avec Zip RECHERCHE DE MOTIF DANS UNE IMAGE par ParseError
BARRES PARAMÉTRABLES EN DÉGRADÉ DE COULEUR ET AVEC TEXTE DA... par hornetbzz
Source avec Zip Source avec une capture GALERIE PHOTO SIMPLE À GÉRER par francky6691
Source avec Zip Source avec une capture DIAPORAMA AVEC AJOUT ET REDIMENSIONEMENT DE PHOTOS, CRÉATION... par giloum
Source avec Zip Source avec une capture AFFICHAGE INFOBULLE SUR GRAPHIQUE ARTICHOW par nirronico

 Sources en rapport avec celle ci

BARRES PARAMÉTRABLES EN DÉGRADÉ DE COULEUR ET AVEC TEXTE DA... par hornetbzz
Source avec Zip CLASSE SIMPLE DE GESTION DE FICHIERS par alexarbitre
Source avec Zip EXÉCUTER DES REQUETE STYLE SQL SUR UN ARRAY par prince418
Source avec Zip CLASSE DE COMMANDES PEAR DB par pascalmintrosse
Source avec une capture PROGRESSBAR (BARRE DE PROGRESSION AVEC AFFICHAGE DU POURCENT... par frop01

Commentaires et avis

Commentaire de frop01 le 11/08/2005 12:19:20

Salut,

Très bon code ;) 10/10

Pour IE6 ca fonctionne bien sauf qu'il faut enlever le "\n" dans la troisième ligne de la fonction Hide pour que ca se termine bien.

@+

Commentaire de davwart le 11/08/2005 13:12:43

lol !
merci Mr Frop01 ;)

Commentaire de ctzenfr le 22/10/2005 13:15:57

Bonjour,

D'abord respect et barvo pour ce script.
Pour info :
Test avec IE 6.0 - Firefox 1.0.7 - Mozilla 1.6 - Opera 7.54
Fonctionnement parfait (une fois enlevé le "\n") en doctype <html>
Par contre en doctype html 4.x ou xhtml 1.x
IE et Opera, variables de positionnement pas prises en compte,
Firefox et Mozilla, même chose + pas de remplissage de la progressbar.
Voilà. Vu mes compétences de débutant, ma contribution s'arrêtera là et à un 10/10 bien sûr.

Commentaire de gorgorbay le 31/12/2005 16:46:01

dommage que free.fr soit en safe mode off

Commentaire de piep14 le 10/03/2006 11:51:44

Bonjour, j'aimerais savoir comment ceci fonctionne avec un formulaire d'upload de fichier ?
Merci de votre aide !

Commentaire de frop01 le 10/03/2006 12:25:33

Salut,

Voici deux scripts (en anglais):

http://www.devpro.it/upload_progress/
http://pdoru.from.ro/

Commentaire de amkp le 04/05/2006 18:32:48

Slt,

bravo pour votre travail frop01 et davwart !
cette classe fonctionne à merveille lorsque l'on utilise une boucle d'exemple "for ($i=0;$i<=100;$i++)"

par contre, lorsque l'on a, par exemple, un nombre de requetes à effectuer qui n'est pas égal à 100,
comment fait-on ?

j'ai bien essayé de remplacer le $i > 100 par le nombre de requetes retournée avec "mysql_num_rows"
mais celà ne m'affiche plus un pourcentage correct...

et si l'on a 1 seule mais longue requete ?

j'avoue ne pas saisir toutes les nuances de l'implémentation de cette classe
merci de votre aide

Commentaire de frop01 le 04/05/2006 21:00:13

Salut,

C'est toujours valable en utilisant un rapport (rapport = 100 / nbrequete )

tu incrémentes ton variable avec la valeur de rapport au lieu plus 1.
@+

Commentaire de amkp le 04/05/2006 23:50:50

désolé mais je ne saisi tjrs pas la nuance...

# //simulate a "time consuming" task
# for ($i=0;$i<=100;$i++)
# {
#     $pb->setPercent($i,'loading message');
#    
#        
# }

imaginons que j'ai un nombre de requete $nbr
et que je fasse une boucle comme ceci

$i = 0;

while ( $i < $nbr )
    {
    //traitement

    $pb->setPercent($i,'loading message');
    }

comment et ou intervient le rapport (rapport = 100 / nbrequete )?

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

barre de progression pendant l'upload [ par Linuss ] Bonjour &#224; tous, Alors voil&#224;, j'aimerai savoir comment faire ou s'il existe un script pour afficher une barre de progression pendant un uploa Barre de progression [ par nicolas66 ] Salut tlm,Je voulais savoir s'il était possible de faire apparaitre une barre de progression d'un téléchargement lors d'un envoi vers un serveur ftp ( Barre de progression upload fichier SIMPLE [ par pukekey ] Bonjour, Voila vous allez surement me dire que je suis un boulet mais je me lance : J'ai chercher pendant des heures un moyen de faire une barre de Barre de progression pour un upload de fichier [ par SeanyJ ] Bonjour, Alors voila je vais vous expliquer mon problème. J'ai créer un formulaire en PHP permettant l'envoi de gros fichier sur mon serveur (jusqu'a Problème variable externe a une classe [ par destiny ] Bonjour,Ma question est simple, comment recuprer dans une classe un variable constante ? Exemple :define("DEFAULT_PAGE", "welcome");class initPage { Problème en PHP [ par GtZz ] Bonsoir, Je me permet de venir vous solliciter concernant un problème persistant sur mon code PHP, petites explications : je souhaitais créer une pa Filtrer une table [ par S83V ] Bonjour à tous Voilà, j'ai créé 2 tables : une table eleve avec les champs ID, nom, prenom, classe, mot de passe. Une table fiches avec les champs ID classe générique pour parser tout type de fichier xml [ par mams004 ] Bonjour, je cherche desespérement une classe php générique pour parser tout type de ficher XML Si vous connaisser des liens ou tuto? merci pour probleme d'instance de classe [ par gretata ] bonjour a tous !! j'ai un problème au niveau des objets en PHP, je ne comprend pas bien comment ils fonctionnent. j'essai de faire un get sur un obj J'aurai besoin d'un peut d'aide svp [ par Underskill ] Bonsoir J'aurais besoin d'aide. Je n'arrive pas afficher les fonction correctement pour afficher le script esceque vous pouriez m'aider svp Le script


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales