Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > HTML / DHTML / XHTML
HTML / DHTML / XHTML Forum sur la programmation HTML / DHTML/ XHTML et la validation W3C. Cours (X)HTML, FAQ (X)HTML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/02/2012, 15h17   #1
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 89
Points : 36
Points : 36
Par défaut Syntaxe sur formulaire multiple

Bonjour à tous,

j'ai une boucle PHP qui génère un même formulaire plusieurs fois (autant de fois que j'ai de personnes inscrites à un voyage).
Pour le nom par exemple la ligne créée est celle ci :
Code :
<input type="text" ... name="nom[]" />
Donc si j'ai 10 fois nom[] je récupère bien tout ce qu'il faut par la suite en php avec nom[0], nom[1], etc.

Or j'ai un soucis avec la civilité
voici ce que je génère :
Code :
1
2
3
<input type="radio" name="civ_'.$acc.'[]" value="m" /> M 
<input type="radio" name="civ_'.$acc.'[]" value="mme" /> Mme 
<input type="radio" name="civ_'.$acc.'[]" value="melle" /> Mlle
où $acc est une variable qui s'incrémente.

Le soucis c'est qu'en PHP je récupère des choses bizarres et je ne sais pas vraiment ce qui a été sélectionné ou pas.

Si vous avez une idée pour la bonne syntaxe à utiliser afin de récupérer correctement les infos du formulaire du style civ_0[0], civ_1[1], etc.

Merci d'avance de votre aide
cedrick21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 15h34   #2
Candidat au titre de Membre du Club
 
Étudiant
Inscription : novembre 2006
Messages : 40
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 40
Points : 10
Points : 10
Je ne suis pas sur de moi, mais juste civ[], ne marcherai pas ?

car avec ton code là en gros tu récupères pour le premier utilisateur si c'est un M :

civ_1[0] = M
civ_2[0] = Null
civ_3[0] = Null


si tu as un deuxieme utilisateur et que c'est une Mlle :

civ_4[1] = Null
civ_5[1] = Null
civ_6[1] = Mlle

ect....
arakiri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 15h37   #3
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 994
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 994
Points : 5 787
Points : 5 787
Envoyer un message via Skype™ à jreaux62
Bonjour,
une solution simple est d'imposer l'index, grâce à un compteur :
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
// initialisation du compteur
$compteur = 0;
// POUR CHAQUE FORMULAIRE :
?>
<!-- ICI, création du formulaire -->
<input type="text" ... name="nom[<?php echo $compteur; ?>]" />
[...]
<input type="radio" ... name="blabla[<?php echo $compteur; ?>]" />
[...]
<?php // incrémentation du compteur, AVANT de créer le formulaire suivant
$compteur++;
?>
Remarque : ce compteur pourrait être ta variable $acc !?
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 16h00   #4
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 89
Points : 36
Points : 36
@arakiri
si j'appelle le champ civ[] partout alors la sélection de la civilité d'une personne va décocher toutes les autres car ils s'appellent tous pareil.

@jreaux62
le soucis c'est que civ[1], par exemple, me retournera "m" en 1er car les "value" sont préremplies.

Du coup je me suis rabattu sur une liste déroulante plutôt que des boutons radios, ça résout mon soucis mais ca ne m'explique pas pourquoi j'avais ce problème et surtout sa solution.

Merci à vous 2 de m'avoir aidé
cedrick21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 16h46   #5
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 994
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 994
Points : 5 787
Points : 5 787
Envoyer un message via Skype™ à jreaux62
Non, car tu auras :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(formulaire 1 :)
Nom : <input type="text" name="nom[1]" value="" /> 
...
<input type="radio" name="civ[1]" value="m" /> M 
<input type="radio" name="civ[1]" value="mme" /> Mme 
<input type="radio" name="civ[1]" value="melle" /> Mlle
...
 
(formulaire 2 :)
Nom : <input type="text" name="nom[2]" value="" /> 
...
<input type="radio" name="civ[2]" value="m" /> M 
<input type="radio" name="civ[2]" value="mme" /> Mme 
<input type="radio" name="civ[2]" value="melle" /> Mlle
...
civ[1] => civilité de la personne 1 (m, mme ou melle, en fonction du radio coché)
civ[2] => civilité de la personne 2
...

CQFD.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 16h50   #6
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 994
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 994
Points : 5 787
Points : 5 787
Envoyer un message via Skype™ à jreaux62
Citation:
Envoyé par cedrick21 Voir le message
...mais ca ne m'explique pas pourquoi j'avais ce problème et surtout sa solution.
Je t'explique ton problème :
Code :
1
2
3
<input type="radio" name="civ_xx[]" value="m" /> M 
<input type="radio" name="civ_xx[]" value="mme" /> Mme 
<input type="radio" name="civ_xx[]" value="melle" /> Mlle
en mettant juste civ_xx[], l'index s'incrémente ici 3 FOIS (automatiquement).
Ce qui met le foutoir dans les index, et tu ne sais plus ce que tu dois récupérer...

En imposant l'index, plus de problème (voir message précédent)
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h09.


 
 
 
 
Partenaires

Hébergement Web