Formatage des tableaux HTML avec PHP

PHP cours tutorial

Formatage des tableaux HTML avec PHP

Nous allons voir dans cette exemple une petite application de la programmation orientée objet de PHP ; il s’agit d’une classe tableHtml qui permet de formater un tableau HTML.  

L’objet tableau généré avec la classe tableHtml s'affiche de la même façon et avec le format approprié.

S'il faut modifier le format des tableaux, il suffit de rectifier le code à un seul endroit (parce que le PHP donne la possibilité de traiter les données avant de les afficher).

Dans l'exemple suivant, le code change la casse des labels (intitulés) affichés ici en majuscules. La classe opère en deux modes: pour les intitulés du haut (des collones) puis pour les deux intitulés de la gauche (les lignes). Voilà le code pour le fichier  classTable.php.

Code de classTable.php : Une classe simple pour afficher des tableaux HTML sans définir un constructeur

Sélectionner le code

  <?php
  class tableHtml
  {
  // une méthode start pour définir l'en-tête du tableau
  function start($header=FALSE)
  {
  print("<table border=\"1\">\n");
  if(is_array($header))
  {
  print("<tr>\n");
  foreach($header as $h)
  {
  print("<th>" . strtoupper($h) ."</th>\n");
  /* on affiche une ligne pour l'en-tête du tableau par les balises <th>
   et avec l'opérateur de concaténation (.) on introduit le texte (référencier par $h)
  en majuscule (utilisation
  de la fonction strtoupper)'*/
  }
  print("</tr>\n");
  }
  }
  // une méthode pour définir la fin du tableau
  function end()
  {
  print("</table>\n\n");
  }
  // une méthode pour définir une ligne du tableau
  function printRow($label, $field)
  {
  print("<tr>\n");
  //Intitulé (ou label)
  if($label !== "")
  {
  print("<th>" .
  strtoupper($label) .
  "</th>\n");
  }
  if(!is_array($field))
  {
  $field = array($field);
  }
  foreach($field as $key=>$value)
  // l'opérateur => affecte une valeur à un élément du tableau
  {
  print("<td>");
  if($value === "")
  {
  print("&nbsp;");
  }
  else
  {
  print($value);
  }
  print("</td>\n");
  }
  print("</tr>\n");
  }
  // une méthode pour ecrire une seul fois le contenu d'un tableau
  function printSet($set)
  {
  foreach($set as $field)
  {
  if(isset($field['label']))
  {
  $label = $field['label'];
  unset($field['label']); // on suprime la variable (un tableau) par référence $field
  }
  else
  {
  $label = "";
  }
  tableHtml::printRow($label, $field);
  }
  }
  }
  ?>

 

Et voici le code de la page afficherTableau.php qui va afficher le tableau

Exemple afficherTableau.php :

Sélectionner le code

  <?php
  require_once("classTable.php");
  ?>
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
      <head>
          <title>Formatage des tableaux HTML avec PHP</title>
          <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
          <meta name="author" content="Gerywa (www.www.oujood.com)" />
      </head>
      <body>
  <p>Exemple d'utilisation des classes et d'appellation des méthodes de la
  classe</p>
  <p>
   C'est un exemple pour : Utiliser une fonction pour répéter un morceau de code  HTML.
  Il construit une table avec les en-têtes dans la colonne de gauche; comme celle qui
  suit:
  </p>
  <?php
  //Afficher le tableau avec les intitulés (labels) sur la gauche
  tableHtml::start();
  tableHtml::printRow('ligne 1', 'Début du tableau');
  tableHtml::printRow('ligne 2', 'Introuduire les lignes du tableau');
  tableHtml::printRow('ligne 3', 'Fin du tableau');
  tableHtml::end();
  ?>
  <p>
   La classe tableHtml vous permet de dessiner les tableaux html de la même manière.
  Pour changer l'apparence de toutes les tables, vous avez besoin seulement d'édition
  de la classe.
  Les feuilles de style offrent une technologie semblable, mais l'exécution dans PHP
  signifie que nous pouvons faire des changements illimités de données avant la
  construction du HTML.
  Cela signifie aussi que nous pouvons denteler les données sans affecter le placement
  sur le document final.
  On affiche un tableau avec l'en-tête en haut:
  </p>
  <?php
  //Afficher un tableau avec les intitulés (labels)en haut
  tableHtml::start(array('Objets', 'cours - Programmation orientee objet'));
  tableHtml::printSet(array(
  array('L\'approche objet', 'les classes PHP'),
  array('Les classes en PHP', 'POO en PHP'),
  array('Exemples', 'Générer les tableaux HTML en PHP')
  ));
  tableHtml::end();
  ?>
  <p>
  Je vous souhaite une bonne utilisation de cette classe trs simple, et je compte sur
  votre imagination pour l'améliorer et l'adapter à vos besoins et votre attente.
  Et je vous invite à publier votre version améliorée, ou vos tutoriaux dans l’espace
  membre du site.
  </p>
  </body>
  </html>

 

Par carabde 20 Aout 2014