Passer la valeur d'une liste multiple (Method = POST)
Pre-requis : 
  | 
  
Supposons le formulaire suivant : <form action="AffListeMultiplePost.php" 
          method="POST" name="formulaire"> dans lequel j'ai mis en rouge et en bleu les choses importantes. Ce qui donnera à l'écran : N'essayez pas de cliquer sur le bouton "Envoyer", ça n'est qu'un exemple, et il n'est pas opérationnel. Il le sera plus bas dans la démonstration. Dans ce type de liste, l'utilisateur à la possibilité 
          de sélectionner plusieurs options en utilisant les combinaisons 
          Ctrl-Clic (choix disjoints) ou Maj-Clic (choix contigus), et non plus 
          une seule option, comme c'était le cas dans les liste de type 
          dites "Menu", c'est-à-dire sans l'attribut "multiple" 
          dans le tag select. Ainsi, si pour récupérer la valeur de l'option sélectionnée (l'attribut "name" est "Ordinateur" pour cette liste ci), nous écrivons, comme nous avons l'habitude de le faire, dans la page appelée : $_POST[Ordinateur] ; celle-ci contiendra uniquement ce que nous avons mis dans l'attribut "value" de la dernière option sélectionnée par l'utilisateur (dans l'ordre d'apparition, puisque tout ceci fonctionne en séquentiel).. Essayez avec la liste select ci-dessous en selectionnant plusieurs options, et regardez ce que ça donne dans la page appelée AffListeMultiplePost.php en cliquant sur le bouton "Envoyer". Vous voyez, ça n'est pas exactement la réalité 
          de la sélection de l'utlisateur. En effet, la valeur passée, 
          est de type "string" (chaîne de caractères), 
          et ne peut contenir qu'une seule valeur.  <select name="Ordinateur[]" size="3" multiple > ce qui nous donnera le formulaire suvant : <form action="AffListeMultiple2Post.php" 
          method="POST" name="formulaire"> Maintenant, le poste "Ordinateur" de la variable $_POST n'est plus du type "string" (chaîne de caractères), mais du type "Array" (tableau). La première valeur sélectionnée par l'utilisateur (toujours dans l'ordre d'apparition dans la liste) aura l'index [0], la deuxième l'index [1], etc. Si l'utilisateur sélectionne tout (il peu travailler sur plusieurs machines hein ? ), ça donnera pour la variable $_POST, les valeurs suivantes : Array ce qui va nous obliger, pour récupérer tout ce qu'il a sélectionné, à faire une petite boucle (voir la leçon sur les structures répétitives). Essayez de sélectionner, rien, une, puis deux, puis toutes les valeurs des options du formulaire ci-dessous, et regardez à chaque fois dans la page appleée ce que donne la variable $_POST. Dans la page appelée, le code PHP est le suivant : <?php  $ListeOrdinateur 
          = array() ; ?> 
 
  | 
  
    Ce cours est enseigné par Philippe 
    Médan 
 
    
    dans le cadre de la formation des professionnels de l'INTERNET.
    au CREFAC 
    , 14 rue Scandicci, 93000 Pantin. Tél. : 01 48 46 51 99
    au GITA-GRETA , Lycée 
    Technologique Diderot 61, rue David D'Angers 75019 Paris Tél. : 01 
    40 40 36 27
    au CESI à l'Ecole 
    des ingénieurs, 116 Av Aristide Briand, BP 57, 92224 Bagneux CEDEX 
    Tél. : 01 45 36 70 00
© Philippe Médan 1999-2003. Tous droits de reproduction réservés pour tous pays.