Page 1 sur 1

2 combos en ASP l'une initialisée selon la 1ere

Publié : 14 mai 2006, 16:13
par mister_toto
Bonjour tt le monde.
En fait, j'ai essayé d'utiliser le code disponible pour faire, en ASP, un formulaire avec 2 combos box dont la 2ème est initialisée selon la sélection effectuée dans la première.
Mon problème est que le 2ème combo est tjrs vide même si je change de selection dans le 1er: ce qui ne correspond pas à ce que j'ai dans ma base de données Je pense que le request("Theme") est tjrs vide ?!

Voici mon code sachant que j'ai deux tables:
carrier(carrier_id, carrier_name, ...) et
stat(N, carrier_id, product, ...)
Bien merci d'avance pour votre aide !!!

<html>
<head>
<base target="milieu">
</head>
<script language="JavaScript">
Function Val_Recherche()
{
rechercheform.submit();
}
</script>

<%
Set conn = Server.CreateObject("ADODB.Connection")
connstring = 'chaine de connection ...
conn.Open connstring
Set Doc_conn = conn

Dim sql
Dim NoTheme, NoSousTheme

if (request("Theme")<>"") then
NoTheme = cint(request("Theme"))
else
NoTheme = 0
end if

if (request("SousTheme")<>"") then
NoSousTheme = cint(request("SousTheme"))
else
NoSousTheme = 0
end if

Dim rsTheme, rsSousTheme

Set rsTheme=Server.CreateObject ("ADODB.Recordset")
rsTheme.Open "carrier", Doc_conn, 1, 2 ,2

sql = "SELECT distinct [N°], product FROM stat"
sql = sql & " where carrier_id = " '& NoTheme

Set rsSousTheme = Doc_conn.Execute (sql)

%>
<body leftmargin="0" topmargin="0">
<form name="rechercheform">
<table border="0" width="528">
<tr>
<td valign="middle" height="22" width="59">Th&egrave;me</td>
<td valign="top" height="22" width="191"><font face="Arial" size="1">
<Select size="1" name="Theme" OnChange="rechercheform.target='_self';rechercheform.action='Theme.asp';Val_Recherche();">
<Option selected value=""></Option>
<%
If Not (rsTheme.eof) Then
rsTheme.movefirst
Do While Not(rsTheme.eof)
If rsTheme.fields("carrier_id")= NoTheme then%>
<Option value="<%=rsTheme.fields("carrier_id")%>" selected><font face="Arial" size="1"><%=rsTheme.fields("carrier_name")%></font></Option>
<%else%>
<Option value="<%=rsTheme.fields("carrier_id")%>"><font face="Arial" size="1"><%=rsTheme.fields("carrier_name")%></font></Option>
<%end If
rsTheme.movenext
Loop
End If
rsTheme.close
Set rsTheme = Nothing
%>
</Select>
</font></td>
<td valign="middle" height="22" width="82">Sous-th&egrave;me</td>
<td valign="top" height="22" width="178"><font face="Arial" size="1">
<Select size="1" name="SousTheme">
<Option selected value=""></Option>
<%
If Not (rsSousTheme.eof) Then
rsSousTheme.movefirst
Do While Not(rsSousTheme.eof)
if rsSousTheme.fields("N°")=NoSousTheme then%>
<Option value="<%=rsSousTheme.fields("N°")%>" selected><font face="Arial" size="1"><%=rsSousTheme.fields("product")%></font></Option>
<%else%>
<Option value="<%=rsSousTheme.fields("N°")%>"><font face="Arial" size="1"><%=rsSousTheme.fields("product")%></font></Option>
<%end If
rsSousTheme.movenext
Loop
End If
rsSousTheme.close
Set rsSousTheme = Nothing
%>
</Select>
</font></td>
</tr>
</table>
<%
Doc_conn.close
Set Doc_conn=Nothing
%>
</form>
</body>
</html>

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3

Publié : 15 mai 2006, 10:22
par mister_toto
En fait, mon problème est là:
request("SousTheme") est toujours vide !
je ne sais pas pourquoi ???
à vous ?!

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)

Publié : 15 mai 2006, 21:52
par Benoit
Bonjour, est-ce que tu pourrais entourer tes morceaux de code de balises [code] ? Ce serait plus lisible.

Peut-être aussi donner un exemple de la page générée, ça permettrait à ceux qui ne pratiquent pas le vbscript de t'aider quand même au cas où le problème se situe de ce côté-là (et peut-être que ça t'aiderai aussi simplement de le regarder).

(Je ne te promets pas que quelqu'un pourra t'aider, les habitués sont plutôt orientés solutions libres, comme PHP par exemple.)