choix multiple dans menu déroulant sur formulaire php

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

aventvoy
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 169
Inscription: Mer Nov 17, 2004 2:00

choix multiple dans menu déroulant sur formulaire php

Message le Lun Aoû 27, 2007 1:14

Bonjour,
Imaginons un menu déroulant dans un formulaire d'inscription, lequel formulaire est ensuite envoyé par email au responsable.
Le menu déroulant comporte... mettons 5 choix possibles (en fait il y en a 21...)
Pour l'instant, l'internaute ne peut choisir qu'un seul "objet"...
J'ai souvent vu des menus déroulants pour lesquels on pouvait choisir plusieurs objets, en faisant Ctrl et en cliquant en même temps sur un autre objet.
Quelqu'un saurait il me dire comment faire ça?

Voilà ce que j'ai mis en place (c'est en php of course) :

<select name="choix">
<option value="choix" selected>Choisissez - Select one</option>
<option value="choix1">choix 1</option>
<option value="choix2">choix 2</option>
<option value="choix3">choix 3</option>
<option value="choix4">choix 4</option>
<option value="choix5">choix 5: </option>
</select>

les données de tout le formulaire sont récupérées, et balancées par email.
La portion qui nous intéresse est :

$choix = $_POST['choix'];

et plus loin,

<select name="choix">
<option value="choix" selected>Choisissez - Please select one</option>
<option value="choix1"<?php if($choix=="choix1"){print "selected=\"selected\"";} ?>>
choix 1 </option>
<option value="choix2"<?php if($choix=="choix2"){print "selected=\"selected\"";} ?>>
choix 2</option>
<option value="choix3"<?php if($choix=="choix3"){print "selected=\"selected\"";} ?>>
choix 3</option>
<option value="choix4"<?php if($navigation=="choix4"){print "selected=\"selected\"";} ?>>
choix 4</option>
<option value="choix5"<?php if($choix=="choix5"){print "selected=\"selected\"";} ?>>
choix 5</option>
</select>

et dans le message qui part par email, on a :

Le participant a choisi : ".$choix ."<br />

Voilà...
J'ai eu beau chercher sur ce forum, pas trouvé de réponse.
Pour information, il s'agit d'étapes d'une expédition voile autour des Amériques, sensibilisation réchauffement climatique etc...

Merci pour votre aide !
A.


mrPringle
WRInaute passionné
WRInaute passionné
 
Messages: 518
Inscription: Sam Mar 11, 2006 16:18

Message le Lun Aoû 27, 2007 2:01

<select name="choix[]" multiple="multiple" size="5 (par exemple)">

la variable retournée $_POST['choix'] est un tableau contenant tous les options sélectionnées.


erestrebian
WRInaute impliqué
WRInaute impliqué
 
Messages: 394
Inscription: Ven Juin 15, 2007 12:55

Message le Lun Aoû 27, 2007 10:22

Et je te conseillerai d'utiliser une boucle while si tes choix sont inclus dans une base de données ou un fichier externe au script. Comme ça, tu n'as pas à modifier le fichier php quand tu ajoutes une escale ou un bateau...

aventvoy
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 169
Inscription: Mer Nov 17, 2004 2:00

Message le Mer Aoû 29, 2007 19:52

MrPringle : Merci pour l'indication. Maintenant il y a bien la possibilité de choisir plusieurs étapes, c'est un bon début :-)
Malheureusement, le message de confirmation qui s'affiche sur l'écran, et le mail que reçoit le responsable montrent (les autres éléments marchent bien):

Vous avez choisi l'étape/les étapes: Array

Donc je me suis planté quelque part avec les [ ] mais je ne vois pas où.
Maintenant on a :
une série de variables, puis:
$navigation[] = $_POST['navigation'];

Vient le formulaire, avec son menu déroulant (j'ai supprimé les détails des 21 étapes, mais c'est attrayant :-) :

<select name="navigation[]" multiple="multiple" size="21">
<option value="choix" selected>Choisissez - Select one</option>
<option value="etape1">Étape 1</option>
<option value="etape2">Étape 2</option>
<option value="etape3">Étape 3</option>
<option value="etape4">Étape 4</option>
<option value="etape5">Étape 5</option>
...etc jusqu'à Étape 21...

puis, pour récupérer les données :

<select name="navigation[]" multiple="multiple" size="21">
<option value="choix" selected>Choisissez - Please select one</option>
<option value="etape1"<?php if($navigation=="etape1"){print "selected=\"selected\"";} ?>>
Étape 1</option>
<option value="etape2"<?php if($navigation=="etape2"){print "selected=\"selected\"";} ?>>
Étape 2</option>
<option value="etape3"<?php if($navigation=="etape3"){print "selected=\"selected\"";} ?>>
Étape 3</option>
<option value="etape4"<?php if($navigation=="etape4"){print "selected=\"selected\"";} ?>>
Étape 4</option>
<option value="etape5"<?php if($navigation=="etape5"){print "selected=\"selected\"";} ?>>
Étape 5</option>
... etc jusqu'à l'étape 21

le message de confirmation une fois le formulaire soumis :

print "Vous avez choisi l'étape/les étapes: ".$navigation."<br />\n";

l'email que reçoit le responsable :

Le participant a choisi l'étape/les étapes: ".$navigation ."<br />

C'est dans ces deux messages que j'ai la réponse Array au lieu d'avoir la selection du visiteur.
A mon avis le problème vient de là :
if($navigation=="etape1"){print "selected=\"selected\""
mais je ne vois pas quoi...

Erestrebian : Merci, tout cela n'est pas intégré dans une bdd, trop compliqué pour moi pour l'instant, mais j'ai commencé à étudier la question (siteduzero et autres...) je saurai me souvenir de ton conseil le moment venu !

Merci,
A.


erestrebian
WRInaute impliqué
WRInaute impliqué
 
Messages: 394
Inscription: Ven Juin 15, 2007 12:55

Message le Jeu Aoû 30, 2007 5:17

navigation est un tableau donc il faut que tu le parcoures pour en extraire les résultats...

echo 'Vous avez choisi l'étape/les étapes: .
Code: Tout sélectionner
while (list($id_etape,$etape)=each($_POST['navigation'])
echo $etape.'<br>';



http://www.webrankinfo.com/forums/viewtopic_79110.htm

j'explique le each et le list dans ce post s'il s'agit de fonction que tu ne connais pas....

aventvoy
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 169
Inscription: Mer Nov 17, 2004 2:00

Message le Lun Sep 03, 2007 1:33

Merci Erestrebian.
Je vais me pencher dessus cette semaine, là je suis charette. En tout cas merci pour ta réponse rapide et précise.
J'espère pouvoir (je devrais pouvoir!) mettre un joli [résolu] sur le sujet du post...
A.


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités