Passer la valeur d'une liste multiple (Method = GET)
Pre-requis :
|
Supposons le formulaire suivant : <form action="AffListeMultipleGet.php"
method="GET" 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 : $_GET[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 sélectionnant plusieurs options, et regardez ce que ça donne dans la page appelée AffListeMultipleGet.php en cliquant sur le bouton "Envoyer". Vous voyez, ça n'est pas exactement la réalité
de la sélection de l'utilisateur. 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 suivant : <form action="AffListeMultiple2Get.php"
method="GET" name="formulaire"> Maintenant, le poste "Ordinateur" de la variable $_GET 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 $_GET, 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 appelée ce que donne la variable $_GET. 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.