Ce code permet de selectionner une valeur dans une liste déroulante d'un champ lorsque l'on modifie un enregistrement de base de données
Source / Exemple :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Astuce Option Selected</title>
</head>
<body>
<!--- Petite astuce pour faciliter la sélection dans une liste déroulante avec la fonction IIf --->
<!--- Methode un peu plus lourde à gérer en passant par une query puis son intégration dans un tableau --->
<!--- mais permet d'éviter les problèmes d'imbrication de cfoutput query--->
<cfset ClientModif="PRECI"> <!--- Affectation de valeur pour démo - Ce client réside en France --->
<!-- ************ -->
<!-- * Queries * -->
<!-- ************ -->
<cfquery name="QClients" datasource="DevisDES" dbtype="ODBC">
SELECT *, ClientID
FROM Clients
WHERE (ClientID = '#ClientModif#')
</cfquery>
<cfquery name="QCodePays" datasource="DevisDES" dbtype="ODBC">
SELECT CodePays <!--- CodePays contient les codes pays (ex: FR pour la france) de la table Pays --->
FROM Pays <!--- Table Pays de DevisDES --->
ORDER BY CodePays
</cfquery>
<!-- ************* -->
<!-- * Tableaux * -->
<!-- ************* -->
<cfset LCodePays = arraynew(1)>
<cfset i=0>
<cfoutput query="QCodePays">
<cfset i=i+1>
<cfset LCodePays[i] ="#CodePays#">
</cfoutput>
<cfform action="ModifRecordset.cfm" method="POST" enablecab="Yes">
<cfoutput query="QClients">
<!--- autres champs du masque --->
CodePays:<br>
<select name="FCodePays">
<cfloop index="j" from="1" to="#Arraylen(LCodePays)#">
<option value="#LCodePays[j]#" #IIf("#CodePays#" is "#LCodePays[j]#", de("selected"),de(""))#>#LCodePays[j]#</option>
</cfloop>
</select>
<!--- autres champs du masque + bouton--->
</cfoutput>
</cfform>
</body>
</html>
Conclusion :
L'utilisation d'un tableau n'est pas requise, elle est un peu plus lourde à gérer mais evite les conflits d'imbrication de 'CFOOUTPUT QUERY'
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.