1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212
| <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!-- #include file="Connections/conn_UES.asp"-->
<%
Dim SQL, TamponListeA, TamponJavaScript, I
Dim MyConn, Etablissement1, Direction2, Departement3, CDF4
SQL = "SELECT Etablis FROM R_Etablissement_Croissant"
TamponListeA = ""
TamponJavaScript = ""
I = 1
'Creation des instances
Set MyConn = Server.CreateObject("Adodb.Connection")
Set Etablissement1 = Server.CreateObject("Adodb.recordset")
Set Direction2 = Server.CreateObject("Adodb.recordset")
Set Departement3 = Server.CreateObject("Adodb.recordset")
Set CDF4 = Server.CreateObject("Adodb.recordset")
'Ouverture de la connection
'Note : ConnectionString votre connection a votre BD
MyConn.Open "UES"
'Ouverture du premier recordset
Etablissement1.Open SQl, MyConn
Do While Not Etablissement1.EOF
'Construction de la premiere liste
TamponListeA = TamponListeA & "<option>" & Etablissement1("Etablis") & "</option>"
SQL = "SELECT Direction FROM R_Direction WHERE Etablis =" & "'" & Etablissement1("Etablis") & "'"
Direction2.Open SQL, MyConn
TamponJavaScript = TamponJavaScript & "liste["&I&"] = new Array ("
First = True
'Mettre une valeur vide si le recordset est vide
If Direction2.EOF Then
TamponJavaScript = TamponJavaScript & "new Array("""", """""
End If
Do While Not Direction2.EOF
If First Then
First = False
Else
TamponJavaScript = TamponJavaScript & "), "
End If
TamponJavaScript = TamponJavaScript & "new Array(""" & Replace(Direction2("Direction"), "'", "\'") & """, "
SQL = "SELECT [Départem#] FROM R_Departement WHERE Direction = " & "'" & Direction2("Direction") & "'"
sec = True
Departement3.Open SQL, MyConn
'Mettre une valeur vide si le recordset est vide
If Departement3.EOF Then
TamponJavaScript = TamponJavaScript & "new Array("""", """""
End If
Do While Not Departement3.EOF
If sec Then
sec = False
Else
TamponJavaScript = TamponJavaScript & "), "
End If
TamponJavaScript = TamponJavaScript & "new Array(""" & Replace(Departement3("Départem#"), "'", "\'") & """, "
SQL = "SELECT [LIBELLE CENTRE DE FRAIS] FROM R_CdfC WHERE [Départem#] =" & "'" & Departement3("Départem#") & "'"
bFlag = True
CDF4.Open SQL, MyConn
'Mettre une valeur vide si le recordset est vide
If CDF4.EOF Then
TamponJavaScript = TamponJavaScript & """"""
End If
Do While Not CDF4.EOF
If bFlag Then
bFlag = False
Else
TamponJavaScript = TamponJavaScript & ", "
End If
TamponJavaScript = TamponJavaScript & """" & Replace(CDF4("LIBELLE CENTRE DE FRAIS"), "'", "\'") & """"
CDF4.MoveNext
Loop
CDF4.Close
Departement3.MoveNext
Loop
Departement3.Close
Direction2.MoveNext
Loop
Direction2.Close
TamponJavaScript = TamponJavaScript & ")));" & VbCrlf
I = I + 1
Etablissement1.MoveNext
Loop
Etablissement1.Close
'Destruction des instances
Set MyConn = Nothing
Set Etablissement1 = Nothing
Set Direction2 = Nothing
Set Departement3 = Nothing
Set CDF4 = Nothing
%>
<script type="text/javascript">
/*** Creation d'un tableau a trois dimensions ***/
liste = new Array();
liste[0] = '';
<%=TamponJavaScript%>
alert(liste[1]);
/*** Deux variables globales qui stockent le choix précédent de la liste ***/
var choixA;
var choixB;
var choixC;
/*** 1ere fonction pour la liste B ***/
function changelisteB(leForm)
{
var B = leForm.listeB;
var taille = B.options.length;
/*** Suppression des options présentes ***/
for(var i=1; i < taille ; i++)
{
B.options[1] = null;
}
/*** Ajout des nouvelles options ***/
for(var i=0; i < liste[choixA].length; i++)
{
var opt = new Option(liste[choixA][i][0][0]);
B.options[B.options.length] = opt;
alert(liste[1]);
}
B.focus();
}
/*** 2eme fonction pour la liste C ***/
function changelisteC(leForm)
{
var C = leForm.listeC;
var taille = C.options.length;
/*** Suppression des options présentes ***/
for(var i=1; i < taille ; i++)
{
C.options[1] = null;
}
if (choixB-1 >= 0)
{
/*** Ajout des nouvelles options ***/
for(var i=1; i < liste[choixA][choixB-1].length; i++)
{
var opt = new Option(liste[choixA][choixB-1][i]);
C.options[C.options.length] = opt;
}
}
C.focus();
}
function changelisteD(leForm)
{
var D = leForm.listeD;
var taille = D.options.length;
/*** Suppression des options présentes ***/
for(var i=1; i < taille ; i++)
{
D.options[1] = null;
}
if (choixC-1 >= 0)
{
/*** Ajout des nouvelles options ***/
for(var i=1; i < liste[choixA][choixB-1][choixC-1].length; i++)
{
var opt = new Option(liste[choixA][choixB-1][choixC-1][i]);
D.options[D.options.length] = opt;
}
}
D.focus();
}
</script>
<form method="post" action="page.asp">
<select name="listeA" onchange="choixB=0; changelisteC(this.form);choixA=this.selectedIndex; changelisteB(this.form);" style="background-color:#FFAAAA">
<option>Sélectionnez un thème principal</option>
<%=TamponListeA%>
</select>
<select name="listeB" onchange="choixB=this.selectedIndex; changelisteC(this.form)" style="background-color:#FFCCAA">
<option>Sélectionnez un sous-thème</option>
</select>
<select name="listeC" onchange="choixC=this.selectedIndex; changelisteD(this.form)" style="background-color:#FFFFFF">
<option>Sélectionnez un sous-thème</option>
</select>
<select name="listeD" onchange="choixC=this.selectedIndex; changelisteD(this.form)" style="background-color:#FFFFFF">
<option>Sélectionnez un sous-thème</option>
</select>
</form> |
Partager