begin process at 2012 05 31 21:07:06
  Trouver un code source :
 
dans
 
Accueil > 

Tutoriels

 > 

Formulaires

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

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


 Information sur le tutoriel

Note :
Aucune note


 Description

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.

Tutorial

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.

Chose sérieuse 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’a remplir le tableau ligne par ligne à l’aide d’une boucle, après avoir bien sûr fixer la première ligne qui est l’en-tête du tableau, donc a partir de la deuxième ligne on lance une boucle qui va se répéter 5 fois (5 ligne) 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.

Commentaires

Commentaire de cod57 le 24/12/2010 11:28:41

BONJOUR
petit oubli
lors du lancement du script les variables ne sont pas définies
ce qui donne Notice: Undefined offset: 0 in C:\wamp\www\php6\les_tableaux\ex1.php on line 147

donc

<?php

$etudiants=array("Etudiant 1","Etudiant 2","Etudiant 3","Etudiant 4","Etudiant 5");

$notes=array($etudiants,$_POST);
if(isset($_POST[5])) {

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>";


}
?>

a++

Commentaire de cordo1 le 30/01/2011 19:18:26

ca peut m'aider
merci

Commentaire de jalalovitch le 31/01/2011 12:47:51

cordo1 : de rien c'est avec plaisir
cod57 : je ne vois pas que vous avez changer qqchose au code ! en plus toutes les variable sont déclarées !

Commentaire de tchangoue2001 le 09/06/2011 14:23:30

Bon tutoriel je crois qu'il vas m'aide mais avec beaucoup de difficulté
dans mon cas je dois remplir un tableau mais je ne donne pas la possibilité de remplir pour 5 étudiants a la fois juste un apres l'autre
mil merci

Commentaire de BabahIvekou le 04/01/2012 15:33:09

Bonjour
je suis entrain de faire le code suivant et j'ai avoir une problème de variables ctd les variables sont pas identifier et le navigateur m'envoi le lin suivant:
Notice: Undefined index: nom in D:\wamp\www\projet\ajout.php on line
=========================================
<html>
<body>
    <form action="ajout.php" method="post">
<table BORDER="2">
        <tr><td><b>Full Name</b></td><td><input type="text" name="nom" maxlength="32"/><br/></td></tr>
        <tr><td><b>Address</b></td><td><TEXTAREA name="adress" VALUE =""></TEXTAREA><br/></td></tr>
        <tr><td><b>Email</b></td><td><input type="text" name="email" maxlength="32"/><br/></td></tr>
        <tr><td><b>password</b></td><td><input type="password" name="motdepasse" maxlength="16"/><br/></td></tr>
        <tr><td><b>Date of Birth</b></td><td>
                     <select name ="moi">
                             <option>januery
                             <option>February
                             <option>March
                             <option>April
                             <option>May
                             <option>June
                             <option>July
                             <option>August
                             <option>September
                             <option> October

                             <option>November<br/>
                             <option>December
                     </select>
                     <select name ="jour">
                             <option>01
                             <option>02
                             <option>03
                             <option>04
                             <option>05
                             <option>06
                             <option>07
                             <option>08
                             <option>09
                             <option>10
                             <option>11
                             <option>12
                             <option>13
                             <option>14
                             <option>15
                             <option>16
                             <option>17
                             <option>18
                             <option>19
                             <option>20
                             <option>21
                             <option>22
                             <option>23
                             <option>24
                             <option>25
                             <option>26
                             <option>27
                             <option>28
                             <option>29
                             <option>30<br/>
                             <option>31
                     </select>
                     <input type="text" name="annee" maxlength="4" size="10"/><br></td></tr>
      <tr><td><b>Gender</b></td><td><input type="radio" name="gender" value="G">Male <input type="radio" name="gender" value="F"> Female<br/></td></tr>
       <tr><td><input type="submit" value="submit"/></td></tr>
</table>
    </form>
<?php
    // Parametres de connexion à la base de données
    $BD_serveur     = "localhost";
    $BD_utilisateur = "root";
    $BD_motDePasse  = "";
    $BD_base        = "projet";
// Récupération des paramètres POST
$Nom=$_POST['nom'];
$Adress=$_POST['adress'];
$Email=$_POST['email'];
$Motdepasse=$_POST['motdepasse'];
$Moi=$_POST['moi'];
$Jour=$_POST['jour'];
$Annee=$_POST['annee'];
$Gender=$_POST['gender'];

   @mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
        or die("Impossible de se connecter au serveur de bases de données.");
   @mysql_select_db($BD_base)
        or die("Impossible de se connecter à la base de données.");

    $requete = "INSERT INTO utilisateur (nom, adress, email, motdepasse,moi,jour,annee,gender)
                  VALUES ('$Nom','$Adress','$Email', '$Motdepasse','$Moi','$Jour','$Annee','$Gender')";
    $result = @mysql_query($requete);
    if (!$result){
       echo "Bonjour ".stripSlashes($Nom).",<br/>";
       echo "L'enregistrement de vos données a échoué. Essayez plus tard.".
            "Et demandez à l'administrateur de vérifier l'existence de la ".
             "table utilisateurs ;-)<br />";
                 }
    else{
       echo "Bonjour ".stripSlashes($Nom).",<br/>";
       echo "Félicitations. Vous êtes desormais un nouveau membre de noutre sit!vousete $Nom et vuos abhite à $adreess".
             "<br />";
        }
?>
</body>
</html>

Commentaire de Guillamue06 le 13/02/2012 04:56:39

On apprend rien sur cette source :

On a quoi ? Une malheureuse boucle "for" c'est tous !

Tu aurais généré un tableau dynamique à la place de déclarer manuellement le tableau (donc il faut connaitre à l'avance le nombre d'étudiant) puis tu aurais généré dynamiquement le formulaire la ça aurais pu être intéressant.

Commentaire de raja90 le 08/05/2012 04:46:44

merciiiiii pour le tuto je suis a la recherche de la meme idee sauf que je veux un afficher les champs d'un table dans un tableau dont le nbre de ligne et de colone inconnu car il sera generé suivant le choix de l'utilisateur par expl un tableau contient le nom des cliens par marché ça sera 2 colone et une infinité de ligne selon la table si je veux afficher le nom cient par marché dans la date x et le produit y alors on a 4colone ...etc
j'espere que vous me m'aidez merci d'avance  :)

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,031 sec (3)

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