Ekkime qua... sono stato un po' indaffarato...
mettiamo che il db sia un mdb di access. Ci sono tre tabelle
tblArea
areaId
areaNome
tblProject
projectId
projectNome
projectRifAreaId
tblApplication
applicationId
applicationNome
applicationRifProjectId
la pagina con le tre combo
codice:
<%@ Language=VBScript %>
<%
strAccessDB = "dbTest.mdb"
Set Conn = Server.CreateObject("ADODB.Connection")
strCon = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(strAccessDB)
Conn.Open strCon
query = "SELECT * FROM tblArea"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open query,Conn,3,3
%>
<HTML>
<HEAD>
<script language="javascript">
function SvuotaCombo(nomeCombo){
ff = document.NomeForm
cc = ff.elements[nomeCombo].options
for(i=(cc.length-1);i>=0;i--)
cc[i]=null
}
function AggiungiOption(nomeCombo,testo,valore){
ff = document.NomeForm
cc = ff.elements[nomeCombo].options
cc[cc.length]=new Option(testo,valore)
}
function ModificaOption(nomeCombo,indice,testo,valore){
ff = document.NomeForm
cc = ff.elements[nomeCombo].options
cc[indice].text=testo
cc[indice].value=valore
}
function popunder(pagina){
pp = window.open(pagina,'popunder','width=300,height=200,top=3000')
pp.blur()
}
function FiltraProject(aa){
valore = aa.options[aa.selectedIndex].value
if(valore!=''){
SvuotaCombo('application')
AggiungiOption('application','Selezionare Project','')
popunder('filtra.asp?IdArea='+valore)
}
else{
SvuotaCombo('project')
AggiungiOption('project','Selezionare Area','')
SvuotaCombo('application')
AggiungiOption('application','Selezionare Project','')
}
}
function FiltraApplication(pp){
valore = pp.options[pp.selectedIndex].value
if(valore!=''){
popunder('filtra.asp?IdProject='+valore)
}
else{
SvuotaCombo('application')
AggiungiOption('application','Selezionare Project','')
}
}
</script>
</HEAD>
<BODY>
<form name="NomeForm">
AREA
<select name="area" onchange="FiltraProject(this);">
<option value="">Selezionare...</option><%
do while not rs.EOF%>
<option value="<%=rs("areaId")%>"><%=rs("areaNome")%></option><%
rs.MoveNext
loop%>
</select>
PROJECT
<select name="project" onchange="FiltraApplication(this)">
<option value="">Selezionare Area</option>
</select>
APPLICATION
<select name="application">
<option value="">Selezionare Project</option>
</select>
</form>
</BODY>
</HTML>
e la pagina filtra.asp
codice:
<%@ Language=VBScript %>
<%
strAccessDB = "dbTest.mdb"
Set Conn = Server.CreateObject("ADODB.Connection")
strCon = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(strAccessDB)
Conn.Open strCon
idArea = Request.QueryString("idArea")
idProject = Request.QueryString("idProject")
if idArea<>"" then
query = "SELECT * FROM tblProject WHERE ProjectRifAreaId=" & idArea
nomeCombo = "project"
nomeTesto = "projectNome"
nomeId = "projectId"
end if
if idProject<>"" then
query = "SELECT * FROM tblApplication WHERE ApplicationRifProjectId=" & idProject
nomeCombo = "application"
nomeTesto = "applicationNome"
nomeId = "applicationId"
end if
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open query,Conn,3,3
%>
<HTML>
<HEAD>
<script language="javascript">
if(window.opener){
oo = window.opener
nomeCombo = '<%=nomeCombo%>'
oo.SvuotaCombo(nomeCombo)
oo.AggiungiOption(nomeCombo,'Attendere prego...','')<%
do while not rs.EOF%>
oo.AggiungiOption(nomeCombo,'<%=Replace(rs(nomeTesto),"'","\'")%>','<%=rs(nomeId)%>')<%
rs.MoveNext
loop%>
oo.ModificaOption(nomeCombo,0,'Selezionare...','')
}
</script>
</HEAD>
<BODY onload="self.close()">
</BODY>
</HTML>
Se servono chiarimenti chiedi pure... non arrenderti Surrender79