Créer une liste select à partir d'une requete sql

Contenu du snippet

Juste une petite fonction qui renvoie le code HTML d'un select à partir d'une requête SQL.
Les arguments sont :
Cn : un objet ADODB.Connection ouvert
Sql : une chaine contenant la requête SQL
Name : une chaine contenant le nom (et id) de votre objet HTML
Class : une chaine contenant l'attribut class de l'objet pour appliquer une feuille de style

Source / Exemple :


<!-- Fichier use.asp -->
<!--
Author	: Emmanuel BRUNO-GAZIGNAIRE
Email	: ___nospam___bmanu@francenet.fr
Web Site	: http://gdf.zalem.net
-->
<!-- #include virtual="/doSelect.asp" -->
<html>
<head>
<style>
.sel {
    FONT-WEIGHT: normal;
    FONT-SIZE: 8pt;
    COLOR: #003060;
    FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;
    BACKGROUND-COLOR: #e9e8e2
}
</style>
</head>
<body>
<%
Dim Cnc, sql
set Cnc = server.CreateObject("adodb.connection")
Cnc.Open "dsn", "login", "passw"
sql = "select id, nom from myTable"

Response.Write "Pour afficher un select, cette méthode utilise la fonction getString, beaucoup plus rapide qu'un parcours de recordset<br>"

Response.Write doSelect(Cnc, sql, "monselect", "sel")
%>
</body>
</html>

<!-- fichier doSelect.asp -->
<!--
Author	: Emmanuel BRUNO-GAZIGNAIRE
Email	: ___nospam___bmanu@francenet.fr
Web Site	: http://gdf.zalem.net
-->
<script language="jscript" runat="server">
function doSelect(Cn, Sql, Name, Class){
	var Rs = new ActiveXObject('adodb.recordset');
	var adClipString = 2;
	Rs.Open(Sql, Cn);
	var result = '\<select name=\"' + Name + '\" id=\"' + Name + '\" class=\"' + Class + '\">\n';
	result += '\t\<option value=\"\"\>\<\/option\>\n';
	result += '\t\<option value=\"';
	result += Rs.GetString(adClipString, Rs.RecordCount, '\"\>', '\<\/option\>\n\t\<option value=\"', '');
	result = result.substring(0, result.length - 17);
	result += '\n\<\/select\>';
	Rs.Close();
	Rs = null;
	return result;
}
</script>

A voir également

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.