Gérer des listes déroulantes

Présentation
Cette fonction accepte cinq arguments :

1. $name : Le nom du l'élément select.
2. $array_value : Le tableau des valeurs de l'élément select.
3. $array_selected : Le tableau des valeurs sélectionnées.
4. $multiple : Valeur bolléenne indiquant si l'élément select est multiple ou simple.
5. $size : Taille du menu.

Mise en oeuvre :
Prenons l'exemple d'un menu déroulant des régions françaises :
Cas où les valeurs sont issues d'un tableau PHP :

$region = array (
1 => 'Alsace' ,
2 => 'Aquitaine' ,
3 => 'Auvergne' ,
4 => 'Basse-Normandie' ,
5 => 'Bourgogne' ,
6 => 'Bretagne' ,
7 => 'Centre' ,
8 => 'Champagne-Ardenne' ,
9 => 'Corse' ,
10 => 'Dom-Tom' ,
11 => 'Franche-Comté' ,
12 => 'Haute-Normandie' ,
13 => 'Ile de France' ,
14 => 'Languedoc-Roussillon' ,
15 => 'Limousin' ,
16 => 'Lorraine' ,
17 => 'Midi-Pyrénées' ,
18 => 'Nord-Pas-de-Calais' ,
19 => 'Pays de la Loire' ,
20 => 'Picardie' ,
21 => 'Poitou-Charentes' ,
22 => 'PACA' ,
23 => 'Rhône-Alpes'
) ;

Dans la page HTML il suffit de faire :
Pour une liste simple

echo listbox ( 'region' , $region ) ;

Pour une liste simple avec une valeur pré-sélectionnée
echo listbox ( 'region' , $region , 4 ) ;

Pour une liste simple avec une valeur pré-sélectionnée et conservation d'une valeur après envoit
echo listbox ( 'region' , $region , ( isset ( $_POST['region'] ) ? $_POST['region'] : 4 ) ) ;

Pour une liste multiple
echo listbox ( 'region' , $region , array() , 1 , 6 ) ;

Pour une liste multiple avec des valeurs pré-sélectionnées
echo listbox ( 'region' , $region , array ( 4 , 5 , 6 , 7 ) , 1 , 6 ) ;

Pour une liste multiple avec des valeurs pré-sélectionnées et conservation des valeurs après envoit
echo listbox ( 'region' , $region ,
( isset ( $_POST['region'] ) ? $_POST['region'] : array ( 4 , 5 , 6 , 7 ) ) , 1 , 6 ) ;



Cas où les valeurs sont issues de la base :

CREATE TABLE region (
id TINYINT( 4 ) NOT NULL AUTO_INCREMENT ,
name TEXT,
PRIMARY KEY ( id )
);

INSERT INTO region (name) VALUES ( 'Alsace' );
INSERT INTO region (name) VALUES ( 'Aquitaine' );
INSERT INTO region (name) VALUES ( 'Auvergne' );
INSERT INTO region (name) VALUES ( 'Basse-Normandie' );
INSERT INTO region (name) VALUES ( 'Bourgogne' );
INSERT INTO region (name) VALUES ( 'Bretagne' );
INSERT INTO region (name) VALUES ( 'Centre' );
INSERT INTO region (name) VALUES ( 'Champagne-Ardenne' );
INSERT INTO region (name) VALUES ( 'Corse' );
INSERT INTO region (name) VALUES ( 'Dom-Tom' );
INSERT INTO region (name) VALUES ( 'Franche-Comté' );
INSERT INTO region (name) VALUES ( 'Haute-Normandie' );
INSERT INTO region (name) VALUES ( 'Ile de France' );
INSERT INTO region (name) VALUES ( 'Languedoc-Roussillon' );
INSERT INTO region (name) VALUES ( 'Limousin' );
INSERT INTO region (name) VALUES ( 'Lorraine' );
INSERT INTO region (name) VALUES ( 'Midi-Pyrénées' );
INSERT INTO region (name) VALUES ( 'Nord-Pas-de-Calais' );
INSERT INTO region (name) VALUES ( 'Pays de la Loire' );
INSERT INTO region (name) VALUES ( 'Picardie' );
INSERT INTO region (name) VALUES ( 'Poitou-Charentes' );
INSERT INTO region (name) VALUES ( 'PACA' );
INSERT INTO region (name) VALUES ( 'Rhône-Alpes' );

Puis :
$sql = "SELECT name FROM region" ;
$result = mysql_query ( $sql ) ;
$region = array() ;
while ( $row = mysql_fetch_assoc ( $result ) )
{
$region[] = $row['name'] ;
}

Ensuite, c'est pareil ...
Téléchargement
2  0 
Téléchargé 263 fois Voir les 2 commentaires
Détails
Catégories : Formulaires
Avatar de Moloc'h
Membre actif
Voir tous les téléchargements de l'auteur
Licence : Autre
Date de mise en ligne : 15 février 2011




Avatar de gragnoutoscope gragnoutoscope - Candidat au Club https://www.developpez.com
le 01/02/2015 à 11:16
Bonjour,
je remercie l'auteur pour son tuto, et, dans la foulée,
formule le souhait que ce tuto comporte des précisions, sur le placement du code dans la page, si on enregistre tel code dans un doc php, tel autre dans un doc html;
ceci afin de nous guider au fur et à mesure du tuto, car au bout d'un moment, je ne voyais plus comment et dans quel ordre intégrer les codes présentés.

Cordialement

lz
Avatar de Celira Celira - Modératrice https://www.developpez.com
le 02/02/2015 à 11:58
Hélas pour toi, la dernière connexion de l'auteur de cette source date de 2006 Il y a donc fort à parier qu'il n'y aura pas de modification (en tous cas, pas faite par l'auteur originel)

Au passage, ce post n'est pas un tuto, c'est le mode d'emploi de la source indiquée au début du post :
Citation Envoyé par Moloc'h  Voir le message
Je vous propose un nouvel élément à utiliser : Gérer des listes déroulantes

Le plus simple si tu rencontres des difficultés serait sans doute d'ouvrir une question indépendante présentant ton code et ton problème.
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Contacter le responsable de la rubrique PHP