Liste deroulante à choix multiple

Liste deroulante à choix multiple - PHP - Programmation

Marsh Posté le 06-10-2005 à 13:44:46    

Bonjour.
 
Je me heurte à un problème de liste déroulante à choix multiple.
J'ai passé plusieurs heures à chercher des infos avec Google mais je ne suis pas parvenu à trouver la solution qui pourtant ne doit pas être si compliquée que ça.
 
De très nombreux site expliquent comment créer une liste déroulante à choix multiple mais aucun (parmis ceux que j'ai trouvés) n'expliquent correctement comment récupérer les choix de l'utilisateur.
Jusqu'a présent je n'utilisais que des listes simples comme celle-ci qui fonctionne très bien.

Code :
  1. echo "<form method=\"post\" action=\"consult.php\">
  2.   Sélectionnez un département<br>
  3.   <select name=\"dep\" onchange=\"this.form.submit()\">
  4.   <option selected value=\"\">--- Département ---";
  5.  include("./connexion/connect.php" );
  6.  $requete=mysql_query("SELECT DISTINCT departement FROM boulangeries ORDER BY departement" );
  7.  while($row = mysql_fetch_row($requete))
  8.   {
  9.   echo "<option>".($row[0])."</option>";
  10.   }
  11.   mysql_close();
  12.   echo "</select></form>";

Pour récupérer le choix il suffit alors de ceci.

Code :
  1. $dep = $_POST["dep"];

C'est plutot simple.
Par contre en ce qui concerne les listes à choix multiples, je ne pige pas trop comment faire.
Pour le moment j'ai ceci:

Code :
  1. echo "<form method=\"post\" action=\"consult.php\">
  2.   Selectionnez une ou plusieurs ville(s)<br>
  3.   <font size=\"2\">Maintenez la touche <img src=\"/images/touche_ctrl.gif\"> appuy&#233;e pour selectionner plusieurs villes.<br></font>
  4.   <select name=\"select[]\" size=5 multiple>";
  5.   include("./connexion/connect.php" );
  6.   $requete=mysql_query("SELECT DISTINCT ville FROM boulangeries WHERE departement = '$dep' ORDER BY ville" );
  7.   while($row = mysql_fetch_row($requete))
  8.    {
  9.    $i++;
  10.    echo "<option value=\"".($row[0])."\">".($row[0])."</option>";
  11.    }
  12.   mysql_close();
  13.   echo "</select>
  14.   <INPUT TYPE=\"submit\" NAME=\"valide\" VALUE=\"Valider\" CLASS=\"bouton\">
  15.   </form>

Ca me permets bien de selctionner une ou plusieurs villes et je n'ai pas d'erreur quand je valide le formulaire mais impossible de récupérer les données.
Je ne suis pas sur que ce formulaire soit bon. Je sais qu'il y a une histoire de crochet "[ ]" mais comment s'en servir ?


Message édité par Mams le 06-10-2005 à 16:11:21

---------------
Je me lève de bonne humeur
Reply

Marsh Posté le 06-10-2005 à 13:44:46   

Reply

Marsh Posté le 06-10-2005 à 13:50:06    

print_r($_POST) et tu verras bien.
 
Indice : [] ça fait penser à un tableau, nan ? :spamafote:

Reply

Marsh Posté le 06-10-2005 à 21:13:11    

En plus de préciser la propriété 'multiple' (jcrois que d'un point de vue sémantique faut mettre multiple="multiple" )
 
nomme ton select name="mon_nom_de_select[]", oublie po les [] pour qu'il garde bien les valeurs sélectionnées dans un tableau
 
 
Après pour récup tes données tu lis ton tableau $_POST['mon_nom_de_select'][x]
 

Code :
  1. for ($i=0; isset($_POST['mon_nom_de_select'][$i]); $i++)
  2.     echo $_POST['mon_nom_de_select'][$i];


Reply

Marsh Posté le 07-10-2005 à 13:31:21    

lkolrn a écrit :

En plus de préciser la propriété 'multiple' (jcrois que d'un point de vue sémantique faut mettre multiple="multiple" )
 
nomme ton select name="mon_nom_de_select[]", oublie po les [] pour qu'il garde bien les valeurs sélectionnées dans un tableau
 
 
Après pour récup tes données tu lis ton tableau $_POST['mon_nom_de_select'][x]
 

Code :
  1. for ($i=0; isset($_POST['mon_nom_de_select'][$i]); $i++)
  2.     echo $_POST['mon_nom_de_select'][$i];



Merci de ta réponse, ça a l'air d'être ça mais je ne peux pas le tester maintenant, le disque de mon serveur Debian vient de rendre l'ame  :cry:  


---------------
Je me lève de bonne humeur
Reply

Marsh Posté le 10-10-2005 à 02:20:32    

Merci LKoLRn !  :jap:  
 
Ca marche nickel !!


---------------
Je me lève de bonne humeur
Reply

Marsh Posté le 24-07-2007 à 14:13:40    

bonjour,
je me heurtais au même type de pb:
 
voir: http://philippe.medan.free.fr/Cour [...] lePost.php
 
Ca peut t'aider
 
db

Reply

Marsh Posté le 07-09-2009 à 16:55:43    

Merci LKoLRn, j'y ai passé l'après-midi avant de trouver ton post  :sweat:

Reply

Sujets relatifs:

Leave a Replay

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