CodeS-SourceS
Rechercher un code, un tuto, une réponse

Remplir dynamiquement un tableau via un formulair (pour débutant)

Octobre 2017


Remplir dynamiquement un tableau via un formulaire



Introduction


Le plus simple et le plus courant c'est la récupération des champs d'un formulaire dans une table dans notre base de donnée, mais par fois il est très utile de récupérer ces champs sur un tableau, comme ça en aura plus de visibilité et on pourra par la suite faire des statistiques et avoir une idée générale, bref ce que je vais vous montrer (aux débutants) c'est comment générer automatiquement un tableau qui contient les informations envoyés par un formulaire (on utilisant la méthode POST).

Pour cela on va créer une seule page qui va contenir le formulaire et le tableau (bien sûr vous pouvez le faire sur deux pages).

Au travail


Tout d'abord on va commencer par créer le formulaire.

Pour cela on va supposer qu'on veut créer un formulaire qui nous permet de saisir les notes des étudiants par exemple, et je donnerai l'explication de mon code en bas de ce dernier :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Notes</title>
</head>

<body>
  <form id="monform" name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <p>
      <label>Etudiant 1 :
        <input type="text" name=0 />
       </label>
    </p>
    <p>
      <label>Etudiant 2:
        <input type="text" name=1 />
      </label>
    </p>
    <p>
      <label>Etudiant 3:
        <input type="text" name=2 />
       </label>
    </p>
    <p>
      <label>Etudiant 4:
        <input type="text" name=3 />
      </label>
    </p>
    <p>
      <label>Etudiant 5:
        <input type="text" name=4 />
      </label>
    </p>
    <p>
      <label>
        <input type="submit" name=5 value="Envoyer" />
      </label>
    </p>
  </form>
</body>
</html>

Explication


Ce formulaire permet de saisir les notes de 5 étudiants, et bien sûr vous pouvez en ajouter autant que vous voulez, remarquez que la seule ligne qui contient du PHP jusqu'à présent est la suivante :

action="<?php echo $_SERVER['PHP_SELF']; ?>"


J'aurai très bien pu mettre action="chemin/Notes.php" puisque je connais déjà le nom de ma page et son chemin mais j'ai voulu vous apprendre l'utilisation de cette puissante variable nommée variable de serveur ($_SERVER []) qui est en générale stockée sous forme d'un tableau qui contient beaucoup d'informations concernant le serveur où votre page est stockée, notamment le chemin et le nom de votre page, pour se faire il suffit de lui ajouter l'attribut 'PHP_SELF'

Notez aussi que pour les noms des zones de texte j'ai donné des chiffres commençant par zéro au lieu de leur attribuer des noms sous format de chaines de caractères et c'est très important car je vais exploiter par la suite le résultat envoyé par la méthode POST sous forme de tableau indicé dont le 1er indice est zéro et à l'aide d'une boucle, donc si je veux récupéré ce qui à été saisi sur une zone je doit le couplé avec son numéro d'indice.

Choses sérieuses maintenant


A présent, créons notre tableau qui va recevoir automatiquement ce qui a été envoyé par notre formulaire, pour cela placez vous juste au-dessous de la balise </form> et tapez le code suivant :

<?php
$etudiants=array("Etudiant 1","Etudiant 2","Etudiant 3","Etudiant 4","Etudiant 5");
$notes=array($etudiants,$_POST);
echo "<table border='1' align='center'>";
echo "<tr>";
echo"<td>Nom</td><td>Note</td>" ;
echo"</tr>";
for ($nbr=0;$nbr<5;$nbr++)
{
echo "<tr>";
    for ($c=0;$c<2;$c++)
    {
        echo"<td>";
        echo $notes[$c][$nbr];
        echo"</td>";
    }
echo "</tr>";
}
echo "</tr>";
echo "</table>";
?>

Explication


D'abord les deux variables $nbr et $c c'est juste pour un compteur pour le nombre des étudiants qui est 5 et un autre pour le nombre des colonnes qui est 2 colonnes (une colonne qui contient les noms et une autre qui contient les notes).
  • $etudiants : cette variable est un tableau qui contient les noms des étudiants.
  • $notes : cette variable est un tableau de deux colonnes qui contient la liste des étudiants et leurs notes, autrement dit c'est la variable qui va contenir les informations envoyés par le formulaire.


Et il ne reste plus qu'à remplir le tableau ligne par ligne à l'aide d'une boucle, après avoir bien sûr fixé la première ligne qui est l'en-tête du tableau. Donc à partir de la deuxième ligne, on lance une boucle qui va se répéter 5 fois (5 lignes) et à l'intérieur de chaque ligne une boucle qui va se répéter 2 fois (2 colonnes).

Il est à noter que, si j'ai publié cet exemple, c'est surtout pour permettre au débutant en PHP de se familiariser avec les variables de type tableau et les boucles, et aussi pour leur donner une idée sur la variable du serveur.

A voir également

Publié par jalalovitch.
Ce document intitulé «  Remplir dynamiquement un tableau via un formulair (pour débutant)  » issu de CodeS-SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Débuguer vos scripts avec notepad++ et xdebug
[poo] exemple alternative à un captcha