Bonjour,
Avant de commencer, je tiens à signaler que mes compétences en matière de codage relèvent de l'amateurisme (je suis en première année de BTS IG), donc bonne connaissance en HTML, CSS, ainsi que quelques notions de PHP, ASP, Javascript et C#.
Mon problème est que je souhaite créer un formulaire avec des listes déroulantes (=LD) dynamiques.
Voici, en gros, la base de données que je vais utiliser pour mes listes déroulantes:
idBat | soustype | type | catégorie
1 | école | scolaire | batiment
2 | creche | scolaire | batiment
3 | bureaux | administratif| batiment
4 | clinique | hospitalier | batiment
5 | null | sculpture | ouvrage d'art
...
Je veux donc avoir dans ma première LD, la catégorie; dans la deuxième, le type en fonction de la catégorie; et dans la troisième, le sous-type en fonction du type.
Ex: quand je sélectionne Batiment dans la 1ere LD, je ne verrais pas apparaitre de type Sculpture (si on suit la base de données ci-dessus), je verrais Administratif, Scolaire, Hospitalier. Et si je sélectionne Scolaire dans ma 2eme LD, j'aurais le choix entre école ou crèche.
Donc, le problème est posé. Comment codé tout ça? Ma base de données est sur SQL Server 2008, ma page web est en HTML/ASP/Javascript.
Ci-dessous, je vous montre le premier jet de mon code , cela donne mes 3 LD mais la 2ème ne varie pas selon la première (elle donne tous les "type"), idem pour la troisième, elle donne tous les "soustype".
<%' Ouverture d'une connexion avec la base affaire
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "mon_dns", "", ""
' Ouverture de l'espace memoire du recordset
Set Rs2 = Server.CreateObject("ADODB.Recordset")
varSQL = "SELECT DISTINCT catégorie FROM typeouvrage"
Rs2.Open varSQL, Conn
' Ouverture de l'espace memoire du recordset
Set Rs3 = Server.CreateObject("ADODB.Recordset")
varSQL = "SELECT DISTINCT type FROM typeouvrage"
Rs3.Open varSQL, Conn
' Ouverture de l'espace memoire du recordset
Set Rs4 = Server.CreateObject("ADODB.Recordset")
varSQL = "SELECT soustype FROM typeouvrage"
Rs4.Open varSQL, Conn
%>
<td>
<select size="1" name="formcatbat">
<option value="prem?" selected> ? </option>
<%Do while Not Rs2.EOF%>
<option value="<%=Rs2("catégorie")%>"><%=Rs2("catégorie")%></option>
<%Rs2.MoveNext
Loop%>
</select><br/>
<select size="1" name="formtypebat">
<option value="deux?" selected> ? </option>
<%Do while Not Rs3.EOF%>
<option value="<%=Rs3("type")%>"><%=Rs3("type")%></option>
<%Rs3.MoveNext
Loop%>
</select><br/>
<select size="1" name="formsoustype">
<option value="trois?" selected>?</option>
<%Do while Not Rs4.EOF%>
<option value="<%=Rs4("soustype")%>"><%=Rs4("soustype")%></option>
<%Rs4.MoveNext
Loop%>
</select>
</td>
<% Conn.Close
Rs1.Close
Rs2.Close
Rs3.Close
Rs4.Close
%>
merci d'avance à ceux qui peuvent aider le pauvre novice que je suis, n'hésitez pas si vous avez besoin de plus de précisions.
