Listes déroulantes (1/2)
En réponse à vos questions sur les <select> !
De nombreuses questions ont été posées à ce sujet alors, sans vouloir être exhaustif, quelques réponses... D'autres exemples simples figurent dans la rubrique "SELECT" du tutorial
"Formulaires" !
Rappels HTML
La syntaxe de base pour faire apparaître une liste déroulante dans un formulaire est la suivante :
<form name="..." method="..." action="..."> <select name="..."> <option>...</option> <option>...</option> ... <option>...</option> </select><br> <input type="submit" value="OK"> </form>
Exemple -->
<form> <select name="liste"> <option>Choix 1</option> <option>Choix 2</option> <option>Choix 3</option> </select><br> <input type="submit" value="OK"> </form>
La balise <select> admet quelques attributs dont :
MULTIPLE : pour des sélections multiples...
NAME : le nom du champ
SIZE : le nombre d'items visibles (par défaut 1)
DISABLED : pour empêcher la modification de la sélection
La balise <option> admet quelques attributs dont :
SELECTED : l'item sélectionné (par défaut le premier)
VALUE : la valeur à retourner (sinon c'est le texte de l'item)
Vos questions
Comment construire une liste d'après les valeurs d'un champ d'une base de données ?
listederoul_1.asp
<%URL = _ request.serverVariables("SCRIPT_NAME")%> <!-- #include file="_connexion.asp"--> <% ' au réaffichage, on récupère la sélection if request.form("liste") <> "" then ' traîtement éventuel, ' redirection, etc ... end if%> <%SQL="SELECT * FROM [MA_TABLE]" Set RS = server.createobject("ADODB.Recordset") RS.Open SQL,Conn , 3, 3%> <form name="myform" method="post" action="<%=URL%> "> <select name="liste"> <%while not RS.eof%> <option><%=RS("champ")%> </option> <% RS.moveNext wend %> </select> <input type="Submit" value="Envoyer"> </form><% conn.close : Set conn=nothing %>
listederoul_1.php
<? $URL = $PHP_SELF;include("_connexion.php") ; ?> <? // au réaffichage, on récupère la sélection if($liste) { // traîtement éventuel, // redirection, etc ... } ?> <? $table="ma_table"; $query = "SELECT * FROM $table"; $result = mysql_query($query); ?> <form name="myform" method="post" action="<? echo $URL; ?> "> <select name="liste"> <? while ($val = mysql_fetch_array($result)) { ?> <option><? echo $val["champ"]; ?> </option> <? } ?> </select> <input type="Submit" value="Envoyer"> </form><? mysql_close(); ?>
Comment réafficher la liste au même item que la sélection précédente ? Lors de la construction de la liste, on teste si l'item est égal au paramètre et si oui, on utilise SELECTED !
listederoul_2.asp
<%URL = _ request.serverVariables("SCRIPT_NAME")%> <!-- #include file="_connexion.asp"--> <%SQL="SELECT * FROM [MA_TABLE]" Set RS = server.createobject("ADODB.Recordset") RS.Open SQL,Conn , 3, 3%> <form name="myform" method="post" action="<%=URL%> "> <select name="liste"> <%while not RS.eof%> <option <%if RS("champ") = request.form("liste") then%> SELECTED <%end if%> ><%=RS("champ")%> </option> <% RS.moveNext wend %> </select> <input type="Submit" value="Envoyer"> </form><% conn.close : Set conn=nothing %>
listederoul_2.php
<? $URL = $PHP_SELF;include("_connexion.php") ; ?> <? $table="ma_table"; $query = "SELECT * FROM $table"; $result = mysql_query($query); ?> <form name="myform" method="post" action="<? echo $URL; ?> "> <select name="liste"> <? while ($val = mysql_fetch_array($result)) { ?> <option <? if($liste==$val["champ"]) { ?> SELECTED <? } ?> ><? echo $val["champ"]; ?> </option> <? } ?> </select> <input type="Submit" value="Envoyer"> </form><? mysql_close(); ?>
Didier le
08/05/2003
(290 589 hits)
Au fil des news Magazines - Le N°128 de Programmez est disponible Magazines - Le N°127 de Programmez est disponible Dreamweaver CS4 + Php + Mysql - Trucs et Astuces - Part 6 Pour continuer dans le même style, je vous propose une suite au précédent article. Rechercher tous ... Adobe - Adobe Photoshop.com Mobile pour iPhone 1.1 JavaScript - Ajouter une page dans vos favorites Dreamweaver CS4 + Php + Mysql - Trucs et Astuces - Part 5 - Je vous propose cette fois deux astuces. Comment exporter une feuille de style avec l'aide de ... SharePoint Personalization Site Links - Les liens personnalisés des MySite SharePoint Nous avons vu dans les articles précédents comment agrémenter les pages de recherche afin de ... Magazines - Le n°126 de Programmez est disponible Outils - Traducteur en ligne automatique pour site web Adobe - Adobe Photoshop.com Mobile pour Iphone Magazines - Le n°125 de Programmez est disponible Adobe - Adobe AIR 2 et Flash Player 10.1version bêta Les conférences autour des technologies Microsoft - Liste non exhaustive des grands évènements Nous allons essayer de regrouper un grand nombre des évènements autour des technologies Microsoft ... Magazines - Le n°124 de Programmez est disponible PHP - Forum PHP 2009 Composants - eFace - XAML en Java WPF - Désactiver le bouton de réduction d'une fenêtre Magazines - Le n°123 de Programmez est disponible Magazines - Le n°122 de Programmez est disponible Auditer une ferme SharePoint - Assurer le bon fonctionnement de SharePoint Dans le cadre de la bonne gestion de son environnement SharePoint, il est utile de faire un ... SQL Server 2008 Report Builder 2.0 - Installation et utilisation de Report Builder 2.0 Dans le cadre de la création de rapports pour SQL Server Reporting Services 2008, un outil est ... Magazines - Le HS N° 1 de Web Design est disponible Adobe - Adobe propose en Open Source les frameworks..... Outils - EntityBuilder CSharp - Sérialisation XML de vos objets Magazines - Le n°121 de Programmez est disponible Adobe - Adobe annonce MAX 2009 ! Outils - WhoIs [MAJ] Dreamweaver MX + Php + MySql - Les formulaires - partie 3 Mise à jour du code, par DB 77, affichage du code erreur, dans la page erreur.php, traduction des ... PHP - News avec photo - Système de gestion - affichage Gestion - Administration - Affichage d'une "News", "Actualité", "Info", ... avec : - mise en forme ... Outils - Crypt Dreamweaver Php Mysql - Région répétée imbriquée Je rebondis, sur un post du forum, pour vous montrer comment obtenir grâce à l'extension Simulated ... Magazines - Le n° 120 de Programmez est disponible Gérer les bases de contenu SharePoint - Gérer la croissance du volume des données Dans le cadre de la gestion quotidienne de ferme SharePoint, il existe une partie qu'il faut ... PHP - Le Coach PHP sur Visual Studio .NET - Ecrire une application .NET utilisant MySQL PHP - Utilisation de PHP dans le monde Microsoft Magazines - Le n° 119 de Programmez est disponible Adobe - Adobe annonce Photoshop Marketplace [MAJ] Tutoriel AJAX simple - En avant vers le WEB2.0 Mis à jour le 20/04/2009