probleme insertion champs supplementaires formulaire php

probleme insertion champs supplementaires formulaire php - PHP - Programmation

Marsh Posté le 21-09-2011 à 16:54:05    

bonjour,  
 
j'ai un formulaire d'inscription, qui insere automatiquement des champs supplémentaires (non,prenom,email) en fonction d'un nombre de places variable, mon probleme est que je n'arrive pas a récuperer l'ensemble des lignes saisies. il me prend que la premiere à chaque fois. merci par avance à ceux qui veulent bien jeter un oeil et m'aider.
 
 
ma requete :  
 
$size=sizeof('nb_champs');
   for($i=0;$i<$size;$i++){
 
 
        mysql_query("INSERT INTO noms VALUES('' ,'" . $nom_atelier. "','" . $id_atelier[$i]. "', '" . $nom[$i] . "', '" .$prenom[$i] . "','" . $email[$i] . "')" ) or die (mysql_error());
 
   }
 
le bout de script qui me permet de rajouter les champs :  
 
 
 
// si l'utilisateur soumet le formulaire on affiche la valeur de tous les champs du formulaire
if (isset($_POST['submit']) && $_POST['submit'] == "Envoyer" ){
  // on affiche le nombre de champs du formulaire
  echo 'Nombre de champs : '.$_POST['nb_champs'].'<br />';
 
  // on affiche la valeur des champs du formulaire
  for ($i=1; $i<=$_POST['nb_champs']; $i++){
    $dynamique = 'nom_'.$i;
    $value = $_POST[$dynamique];
    echo 'Valeur du champ '.$i.' : '.$value.'<br />';
 
 
 
  }
}
 
// sinon on affiche le formulaire avec la possibilité d'ajout des champs au formulaire
else{
  // on défini le nombre initial de champs
  if (!isset($_POST['nb_champs'])){
    $_POST['nb_champs'] =  $nb_de_places_restantes;
  }
  // si la personne clic sur "un champs en +", on ajoute un champs
  if (isset($_POST['submit']) && $_POST['submit'] == "Un champs en +" ){
     
  }
 
  // on affiche le formulaire
   
  // on place un champ caché contenant un entier ayant comme valeur le nombre de champs du formulaire
  echo '<INPUT TYPE="hidden" NAME="nb_champs" VALUE="'.$_POST['nb_champs'].'">';
 
  // on affiche tous les champs du formulaire
  for ($i=1; $i<=$_POST['nb_champs']; $i++){
    echo '<INPUT TYPE="text" name="nom[]'.$i.'">';echo '<INPUT TYPE="text" name="prenom[]'.$i.'">';echo '<INPUT TYPE="text" name="email[]'.$i.'"><br />';
 
  }
 
 

Reply

Marsh Posté le 21-09-2011 à 16:54:05   

Reply

Marsh Posté le 23-09-2011 à 06:21:28    

juste comme ca vite fait :
 
$dynamique = 'nom_'.$i;  
je vois pas de champ defini avec un name de ce genre la  
 
 
echo '<INPUT TYPE="text" name="nom[]'.$i.'">';echo '<INPUT TYPE="text" name="prenom[]'.$i.'">';echo '<INPUT TYPE="text" name="email[]'.$i.'"><br />';  
c'est normal que les $i soient a l'exterieur des crochets?


---------------
[VDS] rail vesa, bras ecran, support TV / [ACH] des machins
Reply

Marsh Posté le 23-09-2011 à 10:30:53    

merci, ok je viens de voir que le script que j'avais  envoyé n'était pas le bon. mais avec celui-ci ça ne marche pas non plus car impossible de valider le formulaire, c'est comme si il lui manquait un champs ( nom ou prenom ou email) pour envoyer le formulaire.
 
mon script .
 
 
// si l'utilisateur soumet le formulaire on affiche la valeur de tous les champs du formulaire
if (isset($_POST['submit']) && $_POST['submit'] == "Envoyer" ){
  // on affiche le nombre de champs du formulaire
  echo 'Nombre de champs : '.$_POST['nb_champs'].'<br />';
 
  // on affiche la valeur des champs du formulaire
  for ($i=1; $i<=$_POST['nb_champs']; $i++){
     
     
    $dynamique = 'nom'.$i;
     
    $value = $_POST[$dynamique];
    echo 'nom '.$i.' : '.$value.'<br />';
     
   
      $dynamique = 'prenom'.$i;
     
    $value2 = $_POST[$dynamique];
    echo 'prenom '.$i.' : '.$value.'<br />';  
   
   
   
        $dynamique = 'email'.$i;
     
    $value3 = $_POST[$dynamique];
    echo 'email '.$i.' : '.$value.'<br />';  
   
     
     
     
  }
}
 
// sinon on affiche le formulaire avec la possibilité d'ajout des champs au formulaire
else{
  // on défini le nombre initial de champs
  if (!isset($_POST['nb_champs'])){
    $_POST['nb_champs'] = 1;
  }
  // si la personne clic sur "un champs en +", on ajoute un champs
  if (isset($_POST['ajouter_champs']) && $_POST['ajouter_champs'] == "Un champs en +" ){
    $_POST['nb_champs']++;
  }
 
  // on affiche le formulaire
  echo '<FORM METHOD="post">';
  // on place un champ caché contenant un entier ayant comme valeur le nombre de champs du formulaire
  echo '<INPUT TYPE="hidden" NAME="nb_champs" VALUE="'.$_POST['nb_champs'].'">';
 
  // on affiche tous les champs du formulaire
   
   
  for ($i=1; $i<=$_POST['nb_champs']; $i++){
   
   
   
  echo '<input name="nom' , $i , '" type="text" id="nom' , $i , '" value="' , isset($_POST['nom'.$i]) ?  $_POST['nom'.$i] :  '' , '">    
   
   
  <input name="prenom' , $i , '" type="text" id="prenom' , $i , '" value="' , isset($_POST['prenom'.$i]) ?  $_POST['prenom'.$i] :  '' , '">
   
 
  <input name="email' , $i , '" type="text" id="email' , $i , '" value="' , isset($_POST['email'.$i]) ?  $_POST['email'.$i] :  '' , '"><br/>';
 
}
 
  // on place un bouton permettant de rajouter un champs
  echo '<INPUT TYPE="submit" NAME="ajouter_champs" VALUE="Un champs en +"><br />';
  // on place un bouton permettant de soumettre le formulaire
  echo '<INPUT TYPE="submit" NAME="submit" VALUE="Envoyer">';
   
}

Reply

Sujets relatifs:

Leave a Replay

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