[RESOLU] formulaire : enregistrer plusieurs personnes

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] formulaire : enregistrer plusieurs personnes

Re: formulaire : enregistrer plusieurs personnes

par mohi » 23 janv. 2016, 09:56

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' ) ); }

Re: formulaire : enregistrer plusieurs personnes

par @rthur » 23 janv. 2016, 00:09

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.

formulaire : enregistrer plusieurs personnes

par mohi » 22 janv. 2016, 21:13

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 !