probléme de variable

probléme de variable - PHP - Programmation

Marsh Posté le 11-04-2008 à 14:08:09    

bjr a tous,
mon probléme consiste a récupérer les informations qui ont été remplie dans les formulaires pour les enregistrer dans la table, voici un exemple:
 
 
<form method="post">
<?php
         $i = 5;
      echo '<table>';
         echo '<th>Personne</th><th>Nom</th><th>prenom</th><th>le plus grand</th></tr>';
         for($nb=1;$nb <= $i;$nb++)
         {
?>
         <tr>
         <td>personne num:<?php echo $nb;?></td>
         <td><input type="text" name="matricule[]"/></td>
         <td><input type="text" name="nom[]"/></td>
         <td><input type="text" name="prenom[]" /></td>
         <td><input type="radio" name="est_chef"/></td>
         </tr>
<?php
         }
?>
     </table>
     <input type="submit" value="Valider" /><br/><br/>
</form>
 
 
 
Merci de Votre aide


Message édité par manchester23 le 11-04-2008 à 14:09:53
Reply

Marsh Posté le 11-04-2008 à 14:08:09   

Reply

Marsh Posté le 11-04-2008 à 15:03:20    

Vu que le formulaire est en method='post', elles sont dans le tableau $_POST

Reply

Marsh Posté le 11-04-2008 à 15:03:34    

Bonjour,
 
Ton but est-il d'enregistrer les informations dans une table d'une base de données ou souhaites tu justes que le contenu du formulaire s'affiche dans un tableau sur la page suivante ?

Reply

Marsh Posté le 11-04-2008 à 16:25:10    

je souhaite récupérer les $_POST est apres les enregistrer dans ma table.
si c'étais de récupérer des valeurs avec un simple $_POST c tres simple.
le probléme est comment récupérer les variables une apres une dans plusieurs formulaires qui ont le meme nom
si c'étais un seul champs je sais que foreach fera la faire mais ici j'ai 3 champs( nom, prenom est matricule )

Reply

Marsh Posté le 11-04-2008 à 16:37:36    

Une des solutions c'est de déclarer tes input avec name="nom_<?=$nb ?>"
A la récupération tu fait la même boucle et tu retrouvera les valeurs dans $_POST["nom_".$nb].
 
Remarques : une action pour ton formulaire ce serait bien. Et pour le dernier input, ce serait pas plutôt une checkbox qu'il te faudrait ?

Reply

Marsh Posté le 11-04-2008 à 16:52:51    

merci pour ton idée bob mais est ce que je peut la faire avec une simple boucle comme " foreach " pour ne pas modifier le nom des variables?
le probléme dans foreach est qu'il n'accépte qu'un tableau d'une seul dimension et la j'ai 3 dimension

Reply

Marsh Posté le 11-04-2008 à 17:10:41    

Mouai enfin là t'as plutôt trois tableaux, vu qu'ils sont indexés de la même façon (d'ailleur, pour en être sûr il vaudrait mieux que tu les déclare avec name="nom[<?=$nb?>]" ), tu peux faire un foreach($_POST['nom'] as $clef => $valeur)
et pointé les valeurs dans les deux autres tableaux grâce à $clef. Mais franchement c'est nettement plus casse gueule que la solution que je te propose. Sinon, je ne sais toujours pas ce que tu veux faire avec ton bouton radio mais en l'état, ça ne risque pas de marcher.

Reply

Marsh Posté le 11-04-2008 à 18:40:46    

manchester23 a écrit :

merci pour ton idée bob mais est ce que je peut la faire avec une simple boucle comme " foreach " pour ne pas modifier le nom des variables?
le probléme dans foreach est qu'il n'accépte qu'un tableau d'une seul dimension et la j'ai 3 dimension


 
Hein ??
 
Avec ce que tu as posté, $_POST['nom'] contiendra un tableau avec tes noms dans l'ordre, même chose pour le matricule et le prénom. Tu peux donc boucler dessus avec un foreach.
 
Où est le problème ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 11-04-2008 à 19:40:56    

sa seras un probléme parceque si je fait par exemple:
foreach
{
foreach...
il va boucle 1 fois dans le premier foreach et plusieur fois dans le deuxiéme et apres il va remonté dans la premiére....

Reply

Marsh Posté le 11-04-2008 à 20:57:59    

Ben...
 

Code :
  1. for ($i = 0; $i < 5; $i++) {
  2.  $matricule = $_POST['matricule'][$i];
  3.  $nom = $_POST['nom'][$i];
  4.  $prenom = $_POST['prenom'][$i];
  5.  // ...
  6. }


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 11-04-2008 à 20:57:59   

Reply

Marsh Posté le 11-04-2008 à 22:22:12    

c vrai! j'ai pas eu l'idée.
 
Merci sielfried, Bob et ts!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed