salve, io non ho risolto
non capisco cosa devo modificare nel codice..
sono 2 giorni che provo
http://www.sitowebflash.com/prova_select_dinamiche.asp
codice:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
reg = request("regioni")
prov = request("provincie")
com = replace(request("comuni"), "'", "'")
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<LINK href="/utilities_marco/verdana.css" type="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Select dinamiche</title>
<script language="JavaScript">
<!--
function aggiorna_regione(){
document.secondaprova.provincie.value = "";
document.secondaprova.comuni.value = "";
document.secondaprova.submit();
}
function aggiorna_provincia(){
document.secondaprova.comuni.value = "";
document.secondaprova.submit();
}
function aggiorna_comune(){
document.secondaprova.provincie.value = "";
document.secondaprova.submit();
}
function submit_finale(){
var check;
check="true";
if (check=="true") {
if ((document.secondaprova.regioni.value=="Scegli una regione")||(document.secondaprova.provincie.value=="--")||(document.secondaprova.comuni.value=="Scegli prima una provincia o una regione")) {
alert("Tutti i campi devono essere selezionati!");
check="false";
}
}
if (check=="true") {
document.secondaprova.action="risultato.asp";
document.secondaprova.submit();
}
}
//-->
</script>
</head>
<body>
<center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<form name="secondaprova" method="post">
<tr>
<td align="right">
Lista dinamica regioni
</td>
<td align="left">
<%
set dinselectregioni = new DinamicSelect
dinselectregioni.DataBase = "/mdb-database/database.mdb"
if len(reg) > 0 then
dinselectregioni.selected = reg
else
dinselectregioni.selected = "Scegli una regione"
end if
dinselectregioni.sql = "select distinct pr_regione from provincie"
dinselectregioni.SelectValue = "pr_regione"
dinselectregioni.SelectText = "pr_regione"
dinselectregioni.evento = "onChange='aggiorna_regione();'"
dinselectregioni.NomeCampo = "regioni"
dinselectregioni.CreaDinamicSelect()
%>
</td>
</tr>
<tr><td colspan="2">
</td></tr>
<tr>
<td align="right">
Lista dinamica provincie
</td>
<td align="left">
<%
set dinselectprovincie = new DinamicSelect
dinselectprovincie.DataBase = "/mdb-database/database.mdb"
if len(reg) > 0 then
if len(com) > 0 then 'per aggiornare la provincia al comune eventualmente scelto direttamente tra quelli della regione corrente
dinselectprovincie.sql = "select pr_sigla, pr_desc from provincie inner join comuni on provincie.pr_sigla=comuni.loc_prov where loc_desc='"&com&"' and pr_regione = '"®&"'"
'NB: con questa query viene estratta la provincia (o le provincie) della regione corrente contenenti il comune selezionato
'(senza la clausola "and pr_regione = '"®&"'" la ricerca avviene su tutta Italia)
else
dinselectprovincie.sql = "select * from provincie where pr_regione='"®&"'"
end if
else
dinselectprovincie.sql = "select * from provincie where pr_sigla='--'"
end if
dinselectprovincie.selected = prov
dinselectprovincie.SelectValue = "pr_sigla"
dinselectprovincie.SelectText = "pr_desc"
dinselectprovincie.evento = "onChange='aggiorna_provincia();'"
dinselectprovincie.NomeCampo = "provincie"
dinselectprovincie.CreaDinamicSelect()
%>
</td>
</tr>
<tr><td colspan="2">
</td></tr>
<tr>
<td align="right">
Lista dinamica comuni
</td>
<td align="left">
<%
set dinselectcomuni = new DinamicSelect
dinselectcomuni.DataBase = "/mdb-database/database.mdb"
if len(reg) > 0 then
if reg = "Scegli una regione" then 'se viene scelta la voce "Scegli una regione" a pagina già caricata
dinselectcomuni.sql = "select loc_desc, loc_prov from comuni where loc_prov = '--'"
else if not (prov = "--" or prov = "") then 'se è stata selezionata una provincia estrae i comuni di quella provincia
dinselectcomuni.sql = "select loc_desc, loc_prov from comuni where loc_prov = '"&prov&"'"
else 'estrae tutti i comuni della regione
dinselectcomuni.sql = "select loc_desc, loc_prov from comuni where loc_prov in (select pr_sigla from provincie where pr_regione='"®&"')"
end if
end if
else 'al primo caricamento di pagina
dinselectcomuni.sql = "select loc_desc, loc_prov from comuni where loc_prov = '--'"
end if
dinselectcomuni.selected = com
dinselectcomuni.SelectValue = "loc_desc"
dinselectcomuni.SelectText = "loc_desc"
dinselectcomuni.evento = "onChange='aggiorna_comune();'"
dinselectcomuni.NomeCampo = "comuni"
dinselectcomuni.CreaDinamicSelect()
%>
</td>
</tr>
<tr><td colspan="2">
</td></tr>
<tr><td colspan="2">
</td></tr>
<tr>
<td colspan="2" align="center">
<input type="button" value="Conferma" onClick="javascript: submit_finale();"/>
</td>
</tr>
</form>
dinselclass.asp:
codice:
<%
class DinamicSelect
public SelectText 'impostare il nome del campo del database che verrà visualizzato nella lista
public SelectValue 'impostare il nome del campo del database che verrà passato come valore della lista
public Selected 'impostare la voce che verrà visualizzata nella lista al caricamento di pagina
public DataBase 'impostare l'url del database
public sql 'impostare la query per estrarre i dati
public Evento 'impostare l'evento che provvederà al submit "parziale" del form
public NomeCampo 'impostare il nome del campo (nell'ambito del form)
function CreaDinamicSelect()
'creazione e apertura della connessione
set conn=server.createobject("adodb.connection")
conn.open = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath(me.DataBase)
%>
<select name='<%=me.NomeCampo%>' <%=me.Evento%>>
<%
'creazione del recordset
set rs=server.createobject("adodb.recordset")
'apertura del recordset
rs.open me.sql,conn,3,3
do until rs.eof
%>
<option value='<%=rs(me.SelectValue)%>' <%if rs(me.SelectValue) = me.selected then
response.write("selected")
end if
%>><%=rs(me.SelectText)%></option>
<%
rs.movenext
loop
%>
</select>
<%
'chiusura e distruzione del recordset
rs.close
set rs = nothing
'chiusura e distruzione della connessione
conn.close
set conn = nothing
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
end function
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
end class
%>
qualche anima gentile mi darebbe una mano?