begin process at 2012 02 12 06:34:44
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaires

 > CLASSE DE CRÉATION DE FORMULAIRE

CLASSE DE CRÉATION DE FORMULAIRE


 Information sur la source

 Description

j'ai créer cette classe (PHP 5 ?) pour générer des formulaires plus simplement. J'attend les admin CS pour me tuer, et surtout pour me dire ce qui ne vas pas (sauf si la liste est trop longue ^^)

Source

  • <?php
  • class formulaire
  • {
  • var $titre;
  • function __construct($style_tableau,$action,$titre='',$nom='',$onsubmit='',$classe_bouton,$champs,$classe_libele,$champs_obligatoire,$classe_libele_obligatoire)
  • {
  • $this->conteneur = array();
  • $this->nb_composants = 0;
  • $this->bouton = $classe_bouton;
  • $this->champs = $champs;
  • $this->libele = $classe_libele;
  • $this->champs_obligatoire = $champs_obligatoire;
  • $this->libele_obligatoire = $classe_libele_obligatoire;
  • /*--- Compteur pour la génération automatique du traitement ---*/
  • $this->compteur_text = 0;
  • $this->valeurs_text = array();
  • $this->compteur_pass = 0;
  • $this->valeurs_pass = array();
  • $this->compteur_photo = 0;
  • $this->valeurs_photo = array();
  • $this->compteur_files = 0;
  • $this->valeurs_files = array();
  • $this->compteur_hidden = 0;
  • $this->valeurs_hidden = array();
  • $this->compteur_check = 0;
  • $this->valeurs_check = array();
  • $this->compteur_radio = 0;
  • $this->valeurs_radio = array();
  • $this->compteur_textarea = 0;
  • $this->valeurs_textarea = array();
  • $this->compteur_select = 0;
  • $this->valeurs_select = array();
  • $this->compteur_captcha = 0;
  • $this->valeurs_captcha = array();
  • /*--- Création du formulaire ---*/
  • $this->conteneur[] = '<form action="'.$action.'" name="'.$nom.'" onSubmit="'.$onsubmit.'" method="post" enctype="multipart/form-data">'."\n";
  • if(!empty($titre))
  • $this->conteneur[] = "\t".$titre."\n";
  • $this->conteneur[] = "\t".'<table style="'.$style_tableau.'">'."\n";
  • if(sizeof($this->conteneur) === 0)
  • throw new Exception('Erreur lors de la création du formulaire : aucune donnée n\'as été créer dans le conteneur.');
  • return $this->conteneur;
  • }
  • private function creer_libele($lib,$obl)
  • {
  • if($obl == true)
  • $tempo = "\t\t".'<tr><td align="right"><label class="'.$this->libele_obligatoire.'">'.$lib.' : </label></td>';
  • else
  • $tempo = "\t\t".'<tr><td align="right"><label class="'.$this->libele.'">'.$lib.' : </label></td>';
  • if(!isset($tempo) || empty($tempo))
  • throw new Exception('Erreur lors de la création du liblelé "'.$lib.'".');
  • return $tempo;
  • }
  • private function calculer_param($type,$lib)
  • {
  • switch($type)
  • {
  • case 0:
  • $this->compteur_text++;
  • $this->valeurs_text[] = $lib;
  • break;
  • case 1:
  • $this->compteur_pass++;
  • $this->valeurs_pass[] = $lib;
  • break;
  • case 2:
  • $this->compteur_photo++;
  • $this->valeurs_photo[] = $lib;
  • break;
  • case 3:
  • $this->compteur_files++;
  • $this->valeurs_files[] = $lib;
  • break;
  • case 4:
  • $this->compteur_hidden++;
  • $this->valeurs_hidden = $lib;
  • break;
  • case 5:
  • $this->compteur_check++;
  • $this->valeurs_check[] = $lib;
  • break;
  • case 6:
  • $this->compteur_radio++;
  • $this->valeurs_radio[] = $lib;
  • break;
  • case 7:
  • $this->compteur_select++;
  • $this->valeurs_select[] = $lib;
  • break;
  • case 8:
  • $this->compteur_captcha++;
  • $this->valeurs_captcha[] = $lib;
  • break;
  • case 9:
  • $this->compteur_textarea++;
  • $this->valeurs_textarea[] = $lib;
  • break;
  • }
  • }
  • public function text($libele,$nom,$obl=false,$value='',$max=255)
  • {
  • formulaire::calculer_param(0,$nom);
  • $taille_deb = sizeof($this->conteneur);
  • $this->conteneur[] = formulaire::creer_libele($libele,$obl);
  • if($obl == false)
  • $this->conteneur[] = '<td align="left"><input type="text" name="'.$nom.'" maxlenght="'.$max.'" value="'.$value.'" class="'.$this->champs.'" /></td></tr>'."\n";
  • else
  • $this->conteneur[] = '<td align="left"><input type="text" name="'.$nom.'" maxlenght="'.$max.'" value="'.$value.'" class="'.$this->champs_obligatoire.'" /></td></tr>'."\n";
  • $taille_fin = sizeof($this->conteneur);
  • if($taille_fin <= $taille_deb)
  • throw new Exception('Erreur lors de la création du champs texte "'.$libele.'" ('.$nom.').');
  • return $this->conteneur;
  • }
  • public function password($libele,$nom,$obl=false,$max="255")
  • {
  • formulaire::calculer_param(1,$nom);
  • $taille_deb = sizeof($this->conteneur);
  • $this->conteneur[] = formulaire::creer_libele($libele,$obl);
  • if($obl === false)
  • $this->conteneur[] = '<td align="left"><input type="password" name="'.$nom.'" maxlenght="'.$max.'" class="'.$this->champs.'" /></td></tr>'."\n";
  • else
  • $this->conteneur[] = '<td align="left"><input type="password" name="'.$nom.'" maxlenght="'.$max.'" class="'.$this->champs_obligatoire.'" /></td></tr>'."\n";
  • $taille_fin = sizeof($this->conteneur);
  • if($taille_fin <= $taille_deb)
  • throw new Exception('Erreur lors de la création du champs password "'.$libele.'" ('.$nom.').');
  • return $this->conteneur;
  • }
  • public function photo($libele,$nom,$obl=false)
  • {
  • formulaire::calculer_param(2,$nom);
  • $taille_deb = sizeof($this->conteneur);
  • $this->conteneur[] = formulaire::creer_libele($libele,$obl);
  • if($obl === 0)
  • $this->conteneur[] = '<td align="left"><input type="file" name="'.$nom.'" class="'.$this->champs.'" /></td></tr>'."\n";
  • else
  • $this->conteneur[] = '<td align="left"><input type="file" name="'.$nom.'" class="'.$this->champs_obligatoire.'" /></td></tr>'."\n";
  • $taille_fin = sizeof($this->conteneur);
  • if($taille_fin <= $taille_deb)
  • throw new Exception('Erreur lors de la création du champs photo "'.$libele.'" ('.$nom.').');
  • return $this->conteneur;
  • }
  • public function fichier($libele,$nom,$obl=false)
  • {
  • formulaire::calculer_param(3,$nom);
  • $taille_deb = sizeof($this->conteneur);
  • $this->conteneur[] = formulaire::creer_libele($libele,$obl);
  • if($obl === 0)
  • $this->conteneur[] = '<td align="left"><input type="file" name="'.$nom.'" class="'.$this->champs.'" /></td></tr>'."\n";
  • else
  • $this->conteneur[] = '<td align="left"><input type="file" name="'.$nom.'" class="'.$this->champs_obligatoire.'" /></td></tr>'."\n";
  • $taille_fin = sizeof($this->conteneur);
  • if($taille_fin <= $taille_deb)
  • throw new Exception('Erreur lors de la création du champs fichier "'.$libele.'" ('.$nom.').');
  • return $this->conteneur;
  • }
  • public function hidden($libele,$nom,$value)
  • {
  • formulaire::calculer_param(4,$nom);
  • $taille_deb = sizeof($this->conteneur);
  • $this->conteneur[] = "\t\t".'<tr><td colspan="2"><input type="hidden" name="'.$nom.'" value="'.$value.'" /></td></tr>'."\n";
  • $taille_fin = sizeof($this->conteneur);
  • if($taille_fin <= $taille_deb)
  • throw new Exception('Erreur lors de la création du champs caché "'.$nom.'".');
  • return $this->conteneur;
  • }
  • public function check($libele,$nom,$tableau,$obl=false)
  • {
  • formulaire::calculer_param(5,$nom);
  • $taille_deb = sizeof($this->conteneur);
  • $this->conteneur[] = formulaire::creer_libele($libele,$obl);
  • $this->conteneur[] = '<td align="left">';
  • foreach($tableau as $cle => $value)
  • {
  • $this->conteneur[] = '<input type="checkbox" value="1" name="'.$nom.'_'.$cle.'" />'.$value.' ';
  • }
  • $this->conteneur[] = '</td></tr>'."\n";
  • $taille_fin = sizeof($this->conteneur);
  • if($taille_fin <= $taille_deb)
  • throw new Exception('Erreur lors de la création du champs checkbox "'.$libele.'" ('.$nom.').');
  • return $this->conteneur;
  • }
  • public function check_cu($libele,$nom,$tableau,$selection,$obl=false)
  • {
  • formulaire::calculer_param(5,$nom);
  • $taille_deb = sizeof($this->conteneur);
  • $this->conteneur[] = formulaire::creer_libele($libele,$obl);
  • $this->conteneur[] = "\t\t".'<td align="left">';
  • foreach($tableau as $cle => $value)
  • {
  • if(in_array($cle,$selection))
  • $this->conteneur[] = '<input type="checkbox" value="1" checked="checked" name="'.$nom.'_'.$cle.'" />'.$value.' ';
  • else
  • $this->conteneur[] = '<input type="checkbox" value="1" name="'.$nom.'_'.$cle.'" />'.$value.' ';
  • }
  • $this->conteneur[] = '</td></tr>'."\n";
  • $taille_fin = sizeof($this->conteneur);
  • if($taille_fin <= $taille_deb)
  • throw new Exception('Erreur lors de la création du champs checkbox "'.$libele.'" ('.$nom.').');
  • return $this->conteneur;
  • }
  • public function radio($libele,$nom,$tableau,$obl=false)
  • {
  • formulaire::calculer_param(6,$nom);
  • $taille_deb = sizeof($this->conteneur);
  • $this->conteneur[] = formulaire::creer_libele($libele,$obl);
  • $this->conteneur[]= '<td align="left">';
  • foreach($tableau as $cle => $value)
  • {
  • $this->conteneur[] = '<input type="radio" value="'.$cle.'" name="'.$nom.'" />'.$value.' ';
  • }
  • $this->conteneur[] = '</td></tr>'."\n";
  • $taille_fin = sizeof($this->conteneur);
  • if($taille_fin <= $taille_deb)
  • throw new Exception('Erreur lors de la création du champs radio "'.$libele.'" ('.$nom.').');
  • return $this->conteneur;
  • }
  • public function radio_cu($libele,$nom,$tableau,$search,$obl=false)
  • {
  • formulaire::calculer_param(6,$nom);
  • $taille_deb = sizeof($this->conteneur);
  • $this->conteneur[] = formulaire::creer_libele($libele,$obl);
  • $this->conteneur[]= '<td align="left">';
  • foreach($tableau as $cle => $value)
  • {
  • if($search == $cle)
  • $this->conteneur[] = '<input type="radio" checked="checked" value="'.$cle.'" name="'.$nom.'" />'.$value.' ';
  • else
  • $this->conteneur[] = '<input type="radio" value="'.$cle.'" name="'.$nom.'" />'.$value.' ';
  • }
  • $this->conteneur[] = '</td></tr>'."\n";
  • $taille_fin = sizeof($this->conteneur);
  • if($taille_fin <= $taille_deb)
  • throw new Exception('Erreur lors de la création du champs radio "'.$libele.'" ('.$nom.').');
  • return $this->conteneur;
  • }
  • public function select($libele,$nom,$tableau,$obl=false)
  • {
  • formulaire::calculer_param(7,$nom);
  • $taille_deb = sizeof($this->conteneur);
  • $this->conteneur[] = formulaire::creer_libele($libele,$obl);
  • $this->conteneur[]= '<td align="left">';
  • $this->conteneur[] = '<select name="'.$nom.'">'."\n";
  • foreach($tableau as $cle => $value)
  • $this->conteneur[] = "\t\t\t".'<option value="'.$cle.'">'.$value.'</option>'."\n";
  • $this->conteneur[] = '</select></td></tr>'."\n";
  • $taille_fin = sizeof($this->conteneur);
  • if($taille_fin <= $taille_deb)
  • throw new Exception('Erreur lors de la création du champs select "'.$libele.'" ('.$nom.').');
  • return $this->conteneur;
  • }
  • public function select_cu($libele,$nom,$tableau,$search)
  • {
  • formulaire::calculer_param(7,$nom);
  • $taille_deb = sizeof($this->conteneur);
  • $this->conteneur[] = formulaire::creer_libele($libele,0);
  • $this->conteneur[]= '<td align="left">';
  • $this->conteneur[] = '<select name="'.$nom.'">'."\n";
  • foreach($tableau as $cle => $value)
  • {
  • if($cle == $search)
  • $this->conteneur[] = "\t\t\t".'<option selected="selected" value="'.$cle.'">'.$value.'</option>'."\n";
  • else
  • $this->conteneur[] = "\t\t\t".'<option value="'.$cle.'">'.$value.'</option>'."\n";
  • }
  • $this->conteneur[] = '</select></td></tr>'."\n";
  • $taille_fin = sizeof($this->conteneur);
  • if($taille_fin <= $taille_deb)
  • throw new Exception('Erreur lors de la création du champs select "'.$libele.'" ('.$nom.').');
  • return $this->conteneur;
  • }
  • public function captcha($nom)
  • {
  • formulaire::calculer_param(8,$nom);
  • $this->conteneur[] = '<tr>'."\n";
  • $this->conteneur[] = '<td align="left">';
  • $this->conteneur[] = '<label class="'.$this->classe_libele_obligatoire.'"><img src="Captcha/validation.php" border="0" /></label></td>'."\n";
  • $this->conteneur[] = '<td align="left"><input class="'.$this->champs_obligatoire.'" type="text" name="'.$nom.'" /></td>'."\n";
  • $this->conteneur[] = '</tr>'."\n\n";
  • }
  • public function textarea($libele,$nom,$value='',$cols=25,$rows=5)
  • {
  • formulaire::calculer_param(9,$nom);
  • $taille_deb = sizeof($this->conteneur);
  • $this->conteneur[] = formulaire::creer_libele($libele,0);
  • $this->conteneur[]= '<td align="left"><textarea class="'.$this->champs.'" name="'.$nom.'" cols="'.$cols.'" rows="'.$rows.'">'.$value.'</textarea></td></tr>'."\n";
  • $taille_fin = sizeof($this->conteneur);
  • if($taille_fin <= $taille_deb)
  • throw new Exception('Erreur lors de la création du champs select "'.$libele.'" ('.$nom.').');
  • return $this->conteneur;
  • }
  • public function vide($content)
  • {
  • $this->conteneur[] = $content;
  • return $this->conteneur;
  • }
  • public function fckeditor($label,$contenu='',$nom="message",$width="100%",$height="300",$toolbar='Default')
  • {
  • include_once("fckeditor/fckeditor.php");
  • $editeur = new FCKeditor($nom);
  • $editeur->BasePath='fckeditor/';
  • $editeur->Value = $contenu;
  • $editeur->ToolbarSet=$toolbar;
  • $editeur->Width = $width;
  • $editeur->Height = $height;
  • $this->conteneur[] = '<tr><td align="center" colspan="2">'.$label.'</td></tr><tr><td align="center" colspan="2">'.$editeur->Create().'</td></tr>';
  • return $this->conteneur;
  • }
  • public function afficher($text,$reset=false)
  • {
  • if($reset == true)
  • $this->conteneur[] = '<tr><td align="center" colspan="2"><input type="reset" value="RAZ" class="'.$this->bouton.'" /><input type="submit" value="'.$text.'" class="'.$this->boutons.'" /></td></tr>';
  • else
  • $this->conteneur[] = '<tr><td align="center" colspan="2"><input type="submit" value="'.$text.'" class="'.$this->bouton.'" /></td></tr>';
  • $this->conteneur[] = '</table></form>';
  • foreach($this->conteneur as $cle => $value)
  • echo $value;
  • }
  • function __destruct()
  • {
  • unset($this->conteneur);
  • }
  • }
  • ?>
<?php

	class formulaire
	{
		var $titre;
		
		function __construct($style_tableau,$action,$titre='',$nom='',$onsubmit='',$classe_bouton,$champs,$classe_libele,$champs_obligatoire,$classe_libele_obligatoire)
		{
			$this->conteneur = array();
			$this->nb_composants = 0;
			
			$this->bouton = $classe_bouton;
			$this->champs = $champs;
			$this->libele = $classe_libele;
			$this->champs_obligatoire = $champs_obligatoire;
			$this->libele_obligatoire = $classe_libele_obligatoire;
			
			/*---	Compteur pour la génération automatique du traitement	---*/
			$this->compteur_text = 0;
			$this->valeurs_text = array();
			$this->compteur_pass = 0;
			$this->valeurs_pass = array();
			$this->compteur_photo = 0;
			$this->valeurs_photo = array();
			$this->compteur_files = 0;
			$this->valeurs_files = array();
			$this->compteur_hidden = 0;
			$this->valeurs_hidden = array();
			$this->compteur_check = 0;
			$this->valeurs_check = array();
			$this->compteur_radio = 0;
			$this->valeurs_radio = array();
			$this->compteur_textarea = 0;
			$this->valeurs_textarea = array();
			$this->compteur_select = 0;
			$this->valeurs_select = array();
			$this->compteur_captcha = 0;
			$this->valeurs_captcha = array();
			
			/*---	Création du formulaire	---*/
			$this->conteneur[] = '<form action="'.$action.'" name="'.$nom.'" onSubmit="'.$onsubmit.'" method="post" enctype="multipart/form-data">'."\n";
			if(!empty($titre))
				$this->conteneur[] = "\t".$titre."\n";
			$this->conteneur[] = "\t".'<table style="'.$style_tableau.'">'."\n";
			if(sizeof($this->conteneur) === 0)
				throw new Exception('Erreur lors de la création du formulaire : aucune donnée n\'as été créer dans le conteneur.');
			return $this->conteneur;
		}
		
		private function creer_libele($lib,$obl)
		{
			if($obl == true)
				$tempo = "\t\t".'<tr><td align="right"><label class="'.$this->libele_obligatoire.'">'.$lib.' : </label></td>';
			else
				$tempo = "\t\t".'<tr><td align="right"><label class="'.$this->libele.'">'.$lib.' : </label></td>';
			
			if(!isset($tempo) || empty($tempo))
				throw new Exception('Erreur lors de la création du liblelé "'.$lib.'".');
			return $tempo;
		}
		
		private function calculer_param($type,$lib)
		{
			switch($type)
			{
				case 0:
					$this->compteur_text++;
					$this->valeurs_text[] = $lib;
				break;
				case 1:
					$this->compteur_pass++;
					$this->valeurs_pass[] = $lib;
				break;
				case 2:
					$this->compteur_photo++;
					$this->valeurs_photo[] = $lib;
				break;
				case 3:
					$this->compteur_files++;
					$this->valeurs_files[] = $lib;			
				break;
				case 4:
					$this->compteur_hidden++;
					$this->valeurs_hidden = $lib;
				break;
				case 5:
					$this->compteur_check++;
					$this->valeurs_check[] = $lib;
				break;
				case 6:
					$this->compteur_radio++;
					$this->valeurs_radio[] = $lib;
				break;
				case 7:
					$this->compteur_select++;
					$this->valeurs_select[] = $lib;
				break;
				case 8:
					$this->compteur_captcha++;
					$this->valeurs_captcha[] = $lib;
				break;
				case 9:
					$this->compteur_textarea++;
					$this->valeurs_textarea[] = $lib;
				break;
			}
		}
		
		public function text($libele,$nom,$obl=false,$value='',$max=255)
		{
			formulaire::calculer_param(0,$nom);
			$taille_deb = sizeof($this->conteneur);
				$this->conteneur[] = formulaire::creer_libele($libele,$obl);
				if($obl == false)
					$this->conteneur[] = '<td align="left"><input type="text" name="'.$nom.'" maxlenght="'.$max.'" value="'.$value.'" class="'.$this->champs.'" /></td></tr>'."\n";
				else
					$this->conteneur[] = '<td align="left"><input type="text" name="'.$nom.'" maxlenght="'.$max.'" value="'.$value.'" class="'.$this->champs_obligatoire.'" /></td></tr>'."\n";
			$taille_fin = sizeof($this->conteneur);
			if($taille_fin <= $taille_deb)
				throw new Exception('Erreur lors de la création du champs texte "'.$libele.'" ('.$nom.').');
			return $this->conteneur;
		}
		
		public function password($libele,$nom,$obl=false,$max="255")
		{
			formulaire::calculer_param(1,$nom);
			$taille_deb = sizeof($this->conteneur);
				$this->conteneur[] = formulaire::creer_libele($libele,$obl);
				if($obl === false)
					$this->conteneur[] = '<td align="left"><input type="password" name="'.$nom.'" maxlenght="'.$max.'" class="'.$this->champs.'" /></td></tr>'."\n";
				else
					$this->conteneur[] = '<td align="left"><input type="password" name="'.$nom.'" maxlenght="'.$max.'" class="'.$this->champs_obligatoire.'" /></td></tr>'."\n";
			$taille_fin = sizeof($this->conteneur);
			if($taille_fin <= $taille_deb)
				throw new Exception('Erreur lors de la création du champs password "'.$libele.'" ('.$nom.').');
			return $this->conteneur;
		}
		
		public function photo($libele,$nom,$obl=false)
		{
			formulaire::calculer_param(2,$nom);
			$taille_deb = sizeof($this->conteneur);
				$this->conteneur[] = formulaire::creer_libele($libele,$obl);
				if($obl === 0)
					$this->conteneur[] = '<td align="left"><input type="file" name="'.$nom.'" class="'.$this->champs.'" /></td></tr>'."\n";
				else
					$this->conteneur[] = '<td align="left"><input type="file" name="'.$nom.'" class="'.$this->champs_obligatoire.'" /></td></tr>'."\n";
			$taille_fin = sizeof($this->conteneur);
			if($taille_fin <= $taille_deb)
				throw new Exception('Erreur lors de la création du champs photo "'.$libele.'" ('.$nom.').');
			return $this->conteneur;
		}
		
		public function fichier($libele,$nom,$obl=false)
		{
			formulaire::calculer_param(3,$nom);
			$taille_deb = sizeof($this->conteneur);
				$this->conteneur[] = formulaire::creer_libele($libele,$obl);
				if($obl === 0)
					$this->conteneur[] = '<td align="left"><input type="file" name="'.$nom.'" class="'.$this->champs.'" /></td></tr>'."\n";
				else
					$this->conteneur[] = '<td align="left"><input type="file" name="'.$nom.'" class="'.$this->champs_obligatoire.'" /></td></tr>'."\n";
			$taille_fin = sizeof($this->conteneur);
			if($taille_fin <= $taille_deb)
				throw new Exception('Erreur lors de la création du champs fichier "'.$libele.'" ('.$nom.').');
			return $this->conteneur;
		}
		
		public function hidden($libele,$nom,$value)
		{
			formulaire::calculer_param(4,$nom);
			$taille_deb = sizeof($this->conteneur);
				$this->conteneur[] = "\t\t".'<tr><td colspan="2"><input type="hidden" name="'.$nom.'" value="'.$value.'" /></td></tr>'."\n";
			$taille_fin = sizeof($this->conteneur);
			if($taille_fin <= $taille_deb)
				throw new Exception('Erreur lors de la création du champs caché "'.$nom.'".');
			return $this->conteneur;
		}		
		
		public function check($libele,$nom,$tableau,$obl=false)
		{
			formulaire::calculer_param(5,$nom);
			$taille_deb = sizeof($this->conteneur);
				$this->conteneur[] = formulaire::creer_libele($libele,$obl);
				$this->conteneur[] = '<td align="left">';
				foreach($tableau as $cle => $value)
				{
					$this->conteneur[] = '<input type="checkbox" value="1" name="'.$nom.'_'.$cle.'" />'.$value.' ';
				}
				$this->conteneur[] = '</td></tr>'."\n";
			$taille_fin = sizeof($this->conteneur);
			if($taille_fin <= $taille_deb)
				throw new Exception('Erreur lors de la création du champs checkbox "'.$libele.'" ('.$nom.').');
			return $this->conteneur;
		}
		
		public function check_cu($libele,$nom,$tableau,$selection,$obl=false)
		{
			formulaire::calculer_param(5,$nom);
			$taille_deb = sizeof($this->conteneur);
				$this->conteneur[] = formulaire::creer_libele($libele,$obl);
				$this->conteneur[] = "\t\t".'<td align="left">';
				foreach($tableau as $cle => $value)
				{
					if(in_array($cle,$selection))
						$this->conteneur[] = '<input type="checkbox" value="1" checked="checked" name="'.$nom.'_'.$cle.'" />'.$value.' ';
					else
						$this->conteneur[] = '<input type="checkbox" value="1" name="'.$nom.'_'.$cle.'" />'.$value.' ';
				}
				$this->conteneur[] = '</td></tr>'."\n";
			$taille_fin = sizeof($this->conteneur);
			if($taille_fin <= $taille_deb)
				throw new Exception('Erreur lors de la création du champs checkbox "'.$libele.'" ('.$nom.').');
			return $this->conteneur;
		}
		
		public function radio($libele,$nom,$tableau,$obl=false)
		{
			formulaire::calculer_param(6,$nom);
			$taille_deb = sizeof($this->conteneur);
				$this->conteneur[] = formulaire::creer_libele($libele,$obl);
				$this->conteneur[]= '<td align="left">';
				foreach($tableau as $cle => $value)
				{
					$this->conteneur[] = '<input type="radio" value="'.$cle.'" name="'.$nom.'" />'.$value.' ';
				}
				$this->conteneur[] = '</td></tr>'."\n";
			$taille_fin = sizeof($this->conteneur);
			if($taille_fin <= $taille_deb)
				throw new Exception('Erreur lors de la création du champs radio "'.$libele.'" ('.$nom.').');
			return $this->conteneur;
		}
		
		public function radio_cu($libele,$nom,$tableau,$search,$obl=false)
		{
			formulaire::calculer_param(6,$nom);
			$taille_deb = sizeof($this->conteneur);
				$this->conteneur[] = formulaire::creer_libele($libele,$obl);
				$this->conteneur[]= '<td align="left">';
				foreach($tableau as $cle => $value)
				{	
					if($search == $cle)
						$this->conteneur[] = '<input type="radio" checked="checked" value="'.$cle.'" name="'.$nom.'" />'.$value.' ';
					else
						$this->conteneur[] = '<input type="radio" value="'.$cle.'" name="'.$nom.'" />'.$value.' ';
				}
				$this->conteneur[] = '</td></tr>'."\n";
			$taille_fin = sizeof($this->conteneur);
			if($taille_fin <= $taille_deb)
				throw new Exception('Erreur lors de la création du champs radio "'.$libele.'" ('.$nom.').');
			return $this->conteneur;
		}
		
		public function select($libele,$nom,$tableau,$obl=false)
		{
			formulaire::calculer_param(7,$nom);
			$taille_deb = sizeof($this->conteneur);
				$this->conteneur[] = formulaire::creer_libele($libele,$obl);
				$this->conteneur[]= '<td align="left">';
				$this->conteneur[] = '<select name="'.$nom.'">'."\n";
				foreach($tableau as $cle => $value)
					$this->conteneur[] = "\t\t\t".'<option value="'.$cle.'">'.$value.'</option>'."\n";
			$this->conteneur[] = '</select></td></tr>'."\n";
			$taille_fin = sizeof($this->conteneur);
			if($taille_fin <= $taille_deb)
				throw new Exception('Erreur lors de la création du champs select "'.$libele.'" ('.$nom.').');
			return $this->conteneur;
		}
		
		public function select_cu($libele,$nom,$tableau,$search)
		{
			formulaire::calculer_param(7,$nom);
			$taille_deb = sizeof($this->conteneur);
				$this->conteneur[] = formulaire::creer_libele($libele,0);
				$this->conteneur[]= '<td align="left">';
				$this->conteneur[] = '<select name="'.$nom.'">'."\n";
				foreach($tableau as $cle => $value)
				{
					if($cle == $search)
						$this->conteneur[] = "\t\t\t".'<option selected="selected" value="'.$cle.'">'.$value.'</option>'."\n";
					else
						$this->conteneur[] = "\t\t\t".'<option value="'.$cle.'">'.$value.'</option>'."\n";
				}
				$this->conteneur[] = '</select></td></tr>'."\n";				
			$taille_fin = sizeof($this->conteneur);
			if($taille_fin <= $taille_deb)
				throw new Exception('Erreur lors de la création du champs select "'.$libele.'" ('.$nom.').');
			return $this->conteneur;
		}
		
		public function captcha($nom)
		{
			formulaire::calculer_param(8,$nom);
			$this->conteneur[] = '<tr>'."\n";
			$this->conteneur[] = '<td align="left">';
			$this->conteneur[] = '<label class="'.$this->classe_libele_obligatoire.'"><img src="Captcha/validation.php" border="0" /></label></td>'."\n";
			$this->conteneur[] = '<td align="left"><input class="'.$this->champs_obligatoire.'" type="text" name="'.$nom.'" /></td>'."\n";
			$this->conteneur[] = '</tr>'."\n\n";
		}
		
		public function textarea($libele,$nom,$value='',$cols=25,$rows=5)
		{
			formulaire::calculer_param(9,$nom);
			$taille_deb = sizeof($this->conteneur);
				$this->conteneur[] = formulaire::creer_libele($libele,0);
				$this->conteneur[]= '<td align="left"><textarea class="'.$this->champs.'" name="'.$nom.'" cols="'.$cols.'" rows="'.$rows.'">'.$value.'</textarea></td></tr>'."\n";
			$taille_fin = sizeof($this->conteneur);
			if($taille_fin <= $taille_deb)
				throw new Exception('Erreur lors de la création du champs select "'.$libele.'" ('.$nom.').');
			return $this->conteneur;
		}
		
		public function vide($content)
		{
			$this->conteneur[] = $content;
			return $this->conteneur;
		}
		
		public function fckeditor($label,$contenu='',$nom="message",$width="100%",$height="300",$toolbar='Default')
		{
			include_once("fckeditor/fckeditor.php");
			$editeur = new FCKeditor($nom);
			$editeur->BasePath='fckeditor/';
			$editeur->Value = $contenu;
			$editeur->ToolbarSet=$toolbar;
			$editeur->Width  = $width;
			$editeur->Height = $height;
			$this->conteneur[] = '<tr><td align="center" colspan="2">'.$label.'</td></tr><tr><td align="center" colspan="2">'.$editeur->Create().'</td></tr>';
			return $this->conteneur;
		}
		
		public function afficher($text,$reset=false)
		{
			if($reset == true)
				$this->conteneur[] = '<tr><td align="center" colspan="2"><input type="reset" value="RAZ" class="'.$this->bouton.'" /><input type="submit" value="'.$text.'" class="'.$this->boutons.'" /></td></tr>';
			else							  
				$this->conteneur[] = '<tr><td align="center" colspan="2"><input type="submit" value="'.$text.'" class="'.$this->bouton.'" /></td></tr>';	
			
			$this->conteneur[] = '</table></form>';
			foreach($this->conteneur as $cle => $value)
				echo $value;
		}
		
		function __destruct()
		{
			unset($this->conteneur);
		}
		
	}

?>



 Sources du même auteur

Source avec Zip Source avec une capture SCRABBLE FACILE...

 Sources de la même categorie

Source avec Zip VÉRIFICATION DE FORMULAIRE EN PHP par psonic13
Source avec Zip Source avec une capture CALENDRIER RÉSERVATION POUR CHAMBRES D'HÔTES EN PHP MYSQL par oallais
Source avec Zip Source avec une capture UPLOADEUR DE FICHIERS MULTIPLES V1 par cod57
FORM, ORM POUR FORMULAIRE par choy
Source avec Zip Source avec une capture LOGIN SHA1 + CRÉATION UTILISATEUR par aventurier19

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture GÉNÉRATION DE FORMULAIRES HTML PERSONNALISÉS. par beejeridou
Source avec Zip [PHP5.2] CLASSE PDO par hornetbzz
CLASSE PAGINATION par darkis
Source avec Zip [POO][PHP5]UN SITE MULTILANGUE VIA XML par destinyfr
Source avec Zip Source avec une capture [PHP5] CLASSE FORMULAIRE par malalam

Commentaires et avis

Commentaire de garfield90 le 23/09/2008 14:39:16

- Tu meles de la presentation et traitement (la gestion par tableau n'est pas nécessaire, voir a ne pas faire).

Tu aurais pu faire de l'heritage avec une classe FormElement qui contient permettrai de gerer un input (text, hidden ou autre), un select, textarea, etc.

Les traitements sur le FormElement sont quasi les memes, association d'un label, d'attribut(id, class, name, etc.), une valeur. Il pourrait y avoir une liste des attribut autorisé.

J'aurai fait un truc du genre

Classe Form => ensemble de FormElement
Classe FormElement
Classe FormInput (étendant FormElement)
Classe FormText (étendant FormInput)
Classe FormTextarea (étendant FormElement)
...

- Sur ce, tu pourrais implementer un décorateur permettant de t'occuper de la présentation (sous forme de tableau, de liste, de definition, etc...)
- Tu pourrais aussi implementer un systeme de vérification des valeurs au moment de la validation du formulaire

Ce ne sont que des pistes, par contre, je ne vois pas l'interet de compter les elements par type.

je vois pas pourquoi la fonction vide s'appele comme ca, a la rigueur un appendContent(ajout_contenu) me semble plus correct et plus compréhensible.

My 2 cents


Commentaire de spoonisback le 25/09/2008 14:04:13

Bonjour et merci
Je vais implanter ce système de classe héritée comme tu le dit. Mais malheureusement, je ne peux développer de classe en PHP 5 que pour le plaisir, la boite ou je bosse n'utilise que le PHP4, donc coté héritage, je ne sai spas si ca vas fonctionner.
Pour le comptage des élément, c'était dans l'intention de faire une autre classe, qui me permettrai a partir du nombre d'élément de tel ou tel type, et leur nom, de les traiter automatiquement, d'ou la séparation des méthodes file et photo...
Mais bon j'y suis pas encore. Je vais essayer de réfléchir pour les classes étendue pour la création des éléments, mais pour la "décoration" et surtout le stylage (virer le tableau), je ne vois pas par ou commencer

Bonne journée à tous CS

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Pb de récupération d'un tableau passé par formulaire depuis php5 [ par murrigane ] Bonjour !J'esp&#232;re que j'ai intitul&#233; le sujet de mon message correctement ! Je vais developper et expliquer ce qui se passe (pas, du moins pl [PHP5] Etendre une classe prédéfinie [ par ZuGbEn ] Bonjour !Je débute plus ou moins dans la programmation orientée objet, et je souhaite faire une classe qui, à partir d'un DomNode existant, ajoute des classeforms.php [ par skulls94 ] bonjour,je dois realiser un formulaire qui interagit avec une bdd. Pour cela j'utilise la classe classeforms.php voir: http://www.toutestfacile.com/cl Fonctionnement SDO [ par guill76 ] Bonjour,Je viens de découvrir un petit peu l'extension SDO de PHP5 que j'ai récupérée en installant PHP5.2.5 il ya environ un semaine et dans cette ex Formulaire : problème d'envoi d'un gif par mail [ par ortuns ] Bonjour à tous,Utilisant le code de Jackboy (que je remercie) intitulé "Envoyer un formulaire par E-Mail" (ID 13457), j'essaie d'envoyer - en même tem Je ne cherche pas une réponse, juste des infos... [ par nanti ] Bonjour à tous !Alors, voilà mon soucis :Sur mon site, j'ai un formulaire de jeu. Je souhaite que les membres puissent jouer 3 fois à partir de mon fo Protection de formulaire avec paypal [ par bricethenetman ] Bonjour, j'aimerais protéger une page de formulaire de facon identique à celle utilisée par les systeme audiotel mais uniquement avec paypal... Quelqu probleme avec [ par christclamard ] j'ai utiliser la fonction javascript pour  empeché la validation du formulaire  lorsque certain caractere(/ ,//, [ , ],url )sont entré  cela  fonction programme [ par arfaauto ] j'ai un probleme:    je ne sais pas comment a partir d'un formulaire saisie  contenant des chekbox recuperer les donnees dans la base de donnees et l' calcul dans un formulaire [ par dekec ] j'ai un formulaire dans lequel j'ai les champs quantité, prix unitaire et total. je souhaite par exemple si je renseigne le champ quantité et prix uni


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 : 0,967 sec (4)

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