Page 1 sur 1

formulaire : enregistrer plusieurs personnes

Posté : 22 janv. 2016, 21:13
par mohi
Bonjour,

J'ai un formulaire avec les champs noms, prenom, email qui permet d'enregistrer des personnes dans une BDD MySql. Un Select permet de choisir le nombre de personne que l'on veut ajouter d'un seul coup. Par exemple, si l'on choisit 2, il va y avoir 2 champs nom, 2 champs prénom et 2 champs email qui vont apparaître.

Je n'arrive pas à récupérer les informations de ces différents champs.
Le formulaire appelé en JS qui fait apparaître X champs :

Code : Tout sélectionner

for (i = 1; i <= nbrePersonne; i++) { formPersonne.innerHTML += "<div id='boxPersonne"+i+"'>"+ "<input type='text' id='nom' placeholder='Nom*' onblur='verifNom(this)' name='tableau[" + i + "][1]' required> "+ "<input type='text' id='prenom' placeholder='Prénom*' name='tableau[" + i + "][2]' onblur='verifNom(this)' required> "+ "<input type='text' id='email' placeholder='Email*' name='tableau[" + i + "][3]' onblur='verifMail(this)' required>"+ "</div> <div align='right'> *Champs obligatoires </div>"; }

J'ai essayé plusieurs choses coté PHP pour récupérer les valeurs mais j'ai un peu de mal à parcourir le tableau correctement. Voici mon code qui n'est pas correct (j'ai testé et je récupère bien le tableau coté PHP) :

Code : Tout sélectionner

$i = 0; foreach($_POST['tableau'] as $key=>$value){ foreach($value as $cle=>$valeur){ $wpdb->insert( 't_inscription', array( 'nom' => $valeur[$i][1], 'prenom' => $valeur[$i][2], 'email' => $valeur[$i][3], ), array( '%s', '%s', '%s', ) ); } $i++; }
Merci pour votre aide !

Re: formulaire : enregistrer plusieurs personnes

Posté : 23 janv. 2016, 00:09
par @rthur
Bonjour,

Pour debuguer un formulaire, il y a 2 façons qui sont complémentaires :
1) Vérifier que les données du formulaires sont bien envoyées par ton navigateur :
Dans Chrome ou Firefox, fais un Ctrl+Maj+i => onglet réseau
et regarde ce qui est envoyé en paramètre pour voir si tes variables sont correctement envoyées.

2) Vérifier que les données du formulaire sont bien reçues par PHP
Fais un var_dump($_POST); au début de ta page PHP qui fait le traitement et éventuellement une deuxième fois au moment où tu effectues le traitement dans ta page.

Re: formulaire : enregistrer plusieurs personnes

Posté : 23 janv. 2016, 09:56
par mohi
Merci, ça m'a bien aidé et ça fonctionne :)


Si quelqu'un a besoin voici mon code :
Code JS :

Code : Tout sélectionner

nombre_personne:2 for (i = 1; i <= nbrePersone; i++) { formPersonne.innerHTML += "<div id='boxPersonne"+i+"'>"+ "<input type='text' id='nom' placeholder='Nom*' onblur='verifNom(this)' name='tableau[" + i + "][1]' required> "+ "<input type='text' id='prenom' placeholder='Prénom*' name='tableau[" + i + "][2]' onblur='verifNom(this)' required> "+ "<input type='text' id='email' placeholder='Email*' name='tableau[" + i + "][3]' onblur='verifMail(this)' required>"+ "</div> <div align='right'> *Champs obligatoires </div>"; }
Mon nouveau code PHP :

Code : Tout sélectionner

foreach($_POST['tableau'] as $key=>$value){ foreach($value as $cle=>$valeur){ if($cle==1){ $nom = $valeur; } if($cle==2){ $prenom = $valeur; } if($cle==3){ $email = $valeur; } } $wpdb->insert( 't_inscription', array( 'nom ' => $nom , 'prenom ' => $prenom , 'email ' => $email ), array( '%s', '%s', '%s' ) ); }