begin process at 2012 02 11 19:02:24
  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 :13 364

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 Source avec une capture CAMEMBERT BD par dardelphi
Source avec une capture AMÉLIORATION : CAMEMBERT par asphator
GESTION DE COULEUR par manuche
Source avec Zip NAVIGATOR (+CSSDETECTOR) par xXVoxPopuliXx
COMMENT, AVEC GD, DESSINER UN RECTANGLE TRANSPARENT PLEIN AV... par Rainbow

 Sources en rapport avec celle ci

Source avec Zip TESTS UNITAIRES par pierreSabatier
Source avec une capture CLASSE CONSTRUCTEUR DE TABLEAU HTML EN PHP (REVU ET CORRIGÉ) par demonstorm
Source avec Zip GÉNÉRER LA CLÉ D'UN CODE-BARRE EAN13 par kalou037
CLASSE MYSQL UTILISANT LES FONCTIONS PDO par Vince66
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 [ par easynoob ] Bonsoir à tous, J'aurais besoin de faire une barre de progression pour un script exécuter en mode console! Si vous avez des idées ou des suggestions, 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 { 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


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,030 sec (4)

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