Accueil > > > CLASSE CONSTRUCTEUR DE TABLEAU HTML EN PHP (REVU ET CORRIGÉ)
CLASSE CONSTRUCTEUR DE TABLEAU HTML EN PHP (REVU ET CORRIGÉ)
Information sur la source
Description
Cette classe développée en php permet de construire simplement un tableau Html... Cette classe n'est peut être pas optimisée au mieux mais fonctionne... Je suis étudiant en BTS informatique et ce code est ma première contribution à cette communauté. Je reste donc ouvert à toute suggestion, remarque, conseil... En espérant avoir apporté quelque chose d'utile... Demonstorm
Source
<?php
class Tableau
{
private $_Header= '';
private $_DebutTab= '<table border=';
private $_FinTab= '</table>';
private $_MonTableau= '';
private $_MesLignes= array();
private $_TabValide= false;
public function Tableau($MonHeader, $nbcols, $border)
{
$this->_DebutTab .= $border;
$this->_DebutTab .= '>';
$this->_Header = '<th colspan='.$nbcols.'>';
$this->_Header .= $MonHeader;
$this->_Header .='</th></tr>';//on construit notre header
}
public function AjouterLigne(array $MesValeursRecues)
{
$UneLigne = new Ligne($MesValeursRecues);//on créé une ligne avec pour argument(s) un tableau de valeur(s)
array_push($this->_MesLignes, $UneLigne);//on ajoute cette ligne au tableau de lignes
$this->_TabValide = false;
}
public function Finalize()
{
$this->_MonTableau=$this->_DebutTab;//on commence à construire notre tableau
$this->_MonTableau.=$this->_Header;//on ajoute le header
foreach ($this->_MesLignes as $LigneEnCours => $this->_MesLignes[$LigneEnCours]) //pour chaque ligne dans le tableau de ligne(s)
{
$this->_MonTableau .= $this->_MesLignes[$LigneEnCours]->Finalize();//on ajoute à notre tableau la ligne en cours constituée
}
$this->_MonTableau.=$this->_FinTab;//on ferme notre tableau
$this->_TabValide = true;
}
public function Center()
{
if($this->_TabValide == true)
{
$this->_MonTableau = '<center>'.$this->_MonTableau.'</center>';
}
else
{
echo 'Tableau non validé!<br>Veuillez vallider votre tableau avant de le centrer...';
}
}
public function Show()
{
if($this->_TabValide == true)
{
echo $this->_MonTableau;//affiche le tableau
}
else
{
echo 'Tableau non validé!<br>Veuillez vallider votre tableau avant de l\'afficher...';
}
}
public function ShowCode()
{
if($this->_TabValide == true)
{
echo(htmlentities($this->_MonTableau));//Affiche le code Html du Tableau constitué!
}
else
{
echo 'Tableau non validé!<br>Veuillez vallider votre tableau avant de d\'afficher son code Html...';
}
}
}
class Ligne
{
private $_MaLigne='';
private $_DebLigne='<tr>';
private $_FinLigne='</tr>';
private $_MesColonnes=array();
public function Ligne(array $MesColonnesRecues)//on attend un array de valeur(s)(chaque valeur deviendra une cellule
{
foreach ($MesColonnesRecues as $UneColonne => $MesColonnesRecues[$UneColonne]) //pour chaque valeurs de l'array de valeur(s)
{
$NouvelleColonne = new Colonne($MesColonnesRecues[$UneColonne][0], $MesColonnesRecues[$UneColonne][1]);//on instancie une cellule avec pour argument la valeur en cours
array_push($this->_MesColonnes, $NouvelleColonne);//on ajoute cette cellule au tableau de cellules
}
}
public function Finalize()
{
$this->_MaLigne=$this->_DebLigne;//on commence a construire notre ligne
foreach($this->_MesColonnes as $ColonneEnCours => $this->_MesColonnes[$ColonneEnCours])//pour chaques cellules existante dans le tableau de cellules
{
$this->_MaLigne .=$this->_MesColonnes[$ColonneEnCours]->Finalize();//on ajoute a notre ligne la cellule constituée
}
$this->_MaLigne.=$this->_FinLigne;//on termine notre cellule on obtient alors <tr><td>contenu</td></tr>
return $this->_MaLigne;//on renvoi notre ligne constituée
}
}
class Colonne
{
private $_MaColonne='';
private $_DebutCol='<td colspan=';
private $_FinCol='</td>';
public function Colonne($MaValRecue, $MaColsRecue)//on attend le contenu de la cellule
{
$this->_DebutCol .= $MaColsRecue;
$this->_DebutCol .= '>';
$this->_MaColonne = $this->_DebutCol;
$this->_MaColonne .= $MaValRecue;
$this->_MaColonne .=$this->_FinCol;//on construit notre cellule <td>contenu</td>
}
public function Finalize()
{
return $this->_MaColonne;//on renvoi notre cellule constituée
}
}
?>
Conclusion
Pour l'utiliser :
1) rajouter ceci au sommet (a l'intérieur de la balise <?php ) de la page qui devra utiliser des tableaux :
include($path."tabconstruct.php");
2) créer un objet de type tabconstruct comme ceci :
$montabconstructor = new tabconstruct();
3) exemple d'utilisation :
$UnHeader = 'Mon Tableau'; $UnHeaderColSpan = "100%"; $UnHeaderBorder = 2;
$UnTableau = new Tableau($UnHeader, $UnHeaderColSpan, $UnHeaderBorder);
$arrLigne = array(array("Ligne1 Colonne1", "50%"), array("Ligne1 Colonne2", "50%"));//(ici 2 colonnes) $UnTableau->AjouterLigne($arrLigne); $ar rLigne=0;
$arrLigne = array(array("Ligne2 Colonne1", "33%"), array("Ligne2 Colonne2", "34%"), array("Ligne2 Colonne3", "33%")); //le pourcentage correspond au cols pan et s'obtient comme suit : 100/nombre de colonne que cela recouvre (ici 3 colonnes) $UnTableau->AjouterLigne($arrLigne); $ar rLigne=0;
$arrLigne = array(array("Ligne3 Colonne1", "25%"), array("Ligne3 Colonne2", "25%"), array("Ligne3 Colonne3", "25%"), array("Ligne3 Colonne4", "25%"));// (ici 4 colonnes) $UnTableau->AjouterLigne($arrLigne); $ar rLigne=0;
$arrLigne = array(array("Ligne4 Colonne1", "20%"), array("Ligne4 Colonne2", "20%"), array("Ligne4 Colonne3", "20%"), array("Ligne4 Colonne4", "20%"), array("Ligne4 Colonne5", "20%"));// (ici 5 colonnes) $UnTableau->AjouterLigne($arrLigne); $ar rLigne=0;
$UnTableau->Finalize(); $UnTableau->Cen ter(); $UnTableau->Show();
********* * BONUS * *********
Cette méthode vous permet d'afficher le code html de votre tableau (ca peut servir pour certains)
$UnTableau->ShowCode();
Historique
- 28 février 2011 11:06:53 :
- Mise a jour du code :
> tabconstructeur et maintenant une class
> POO (ré-utilisabilité du code)
- 07 mars 2011 14:20:15 :
- Réévaluation du niveau...
- 08 mars 2011 09:41:43 :
- Petites corrections...
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
concaténation [ par yanipig ]
Bonjour à tous, j ai un petit problème de concatenation De un j ai un tableau d 'entiers représentant m
PHP classe constructeur [ par missceline33 ]
Bonjour à tous, j'ai un problème avec mes classes PHP. Je voudrais définir plusieurs constructeurs à ma classe mais quand je rajou
Variables [ par simpso95 ]
Bonsoir à tous.Je me lance dans la grande famille du....php. Déjà je bute sur quelques problème.Afin d'apprendre le php 5, je construis un "jeu" éduca
TABLEAU PHP [ par daris ]
Bonjour,J'ai un tableau qui se présente comme ci dessous.array{ [HUMIDITE] => Array { [Humidité] => Array {
Récupérer les valeurs de la première colonne d'une table dans un tableau [ par etincelle01 ]
Bonsoir, Dans PHP, il y a la fonction mysql_fetch_array() qui place les enregistrements résultats d'une requête dans un tableau. Mais il n'y a pas de
Masquer une colonne dans un tableau en php [ par nostalgieing ]
Bonjour j'ai un tableau dont deux colonnes contiennt deux operateurs et je veux les masquer (seulement masquer ces deux colonnes) mais je ne trouve
include dans une variable PHP [ par mdc888 ]
Salut à tous, Je cherche à inclure un tableau html dans un système d'envoi de mail. Ce tableau est utilisé par d'autres parties de mon code. Exemple
Affichage miniature avec javacript et boucle while php [ par stvoim2 ]
Bonjour, je m'adresse ici car j'ai tout essayé pour répondre à mon problème en vain et je ne suis pas un specaliste du language javascript. J'ai créer
checkbox en php [ par nejla25kachroudi ]
Bonjour,j'ai un problème au niveau de checkbox,j'ai un formulaire sous forme d'un tableau de coordonnées des étudiants (les coordonnées sont enregistr
initialisation d'un tableau en php [ par boubeuch1 ]
Bonjour, Je souhaiterais afficher mes différents albums dans un tableau à 2 colonnes. <?php $dossierphoto=opendir("../photo_galerie");//ouvre le
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
GOOGLE MAPGOOGLE MAP par fatmanajjar
Cliquez pour lire la suite par fatmanajjar
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|