Select dinamica asp non funziona su chrome e ff -> si su ie...help

marco75sa1

Nuovo Utente
14 Dic 2010
5
0
0
Salerno
Paolo, controlla bene. Su Firefox e Chrome.
Se selezioni CAMPANIA, SALERNO, ACERNO la provincia cambia da Salerno a Avellino... ecco l'errore.
Questo non accade su IE dove è corretto. (Acerno fa provincia di Salerno).

;)
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
In 30 minuti l'ho completamente rifatto.

1° personalizzati la connessione al DB:
Codice:
strConnect = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("database.mdb")

2° copia ed incolla il seguente codice in una pagina chiamata default.asp:

Codice:
<%

' connessione al DB
Dim strConnect
	strConnect = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("database.mdb") 

' Query String
Dim regione
Dim provincia
Dim comune
	regione = Trim(Mid(Request.QueryString("regione"), 1, 50))
	provincia = Trim(Mid(Request.QueryString("provincia"), 1, 50))
	comune = Trim(Mid(Request.QueryString("comune"), 1, 50))
	

' >>>>>>>>>>> SELEZIONO LA REGIONE <<<<<<<<<<<<<

If regione = "" Then 

%>
Seleziona regione: <select name="regione">
<option value=""></option><%

'  *** recupero le regioni ***
Set Regione = Server.CreateObject("ADODB.Recordset")
	Regione.ActiveConnection = strConnect
	Regione.Source = "SELECT DISTINCT pr_regione FROM province" 
	Regione.CursorType = 0
	Regione.CursorLocation = 2
	Regione.LockType = 1
	Regione.Open()

	Regione_numRows = 0
	Rp__Regione = 999
	Regione_numRows = Regione_numRows + Rp__Regione

While ((Rp__Regione <> 0) AND (NOT Regione.EOF)) 
	
	Rs_regione = (Regione.Fields.Item("Pr_Regione").Value)

%><option value="<%=Rs_regione%>" onClick="parent.location = 'default.asp?regione=<%=Rs_regione%>'"><%=Rs_regione%></option><%

	Rp__Regione=Rp__Regione+1
	Rp__Regione=Rp__Regione-1
	Regione.MoveNext()
Wend
	Regione.Close
Set Regione = Nothing ' chiudo il recordset

%>
</select>
<% Else %>
Regione selezionata: <%=regione%><br /><br />
<% 

End If 


' >>>>>>>>>>> SELEZIONO LA PROVINCIA <<<<<<<<<<<<<

If (Request.QueryString("regione") <> "") AND (Request.QueryString("provincia") = "") Then 

%>
Seleziona provincia: <select name="provincia">
<option value=""></option><%

'  *** recupero le provincie ***
Set Provincia = Server.CreateObject("ADODB.Recordset")
	Provincia.ActiveConnection = strConnect
	Provincia.Source = "SELECT * FROM province WHERE pr_regione= '"&regione&"'" 
	Provincia.CursorType = 0
	Provincia.CursorLocation = 2
	Provincia.LockType = 1
	Provincia.Open()

	Provincia_numRows = 0
	Rp__Provincia = 999
	Provincia_numRows = Provincia_numRows + Rp__Provincia

While ((Rp__Provincia <> 0) AND (NOT Provincia.EOF)) 
	
	Rs_Provincia = (Provincia.Fields.Item("Pr_Desc").Value)
	Rs_Provincia_Sigla = (Provincia.Fields.Item("Pr_Sigla").Value)

%><option value="<%=Rs_Provincia%>" onClick="parent.location = 'default.asp?regione=<%=regione%>&provincia=<%=Rs_Provincia_Sigla%>'"><%=Rs_Provincia%></option><%

	Rp__Provincia=Rp__Provincia+1
	Rp__Provincia=Rp__Provincia-1
	Provincia.MoveNext()
Wend
	Provincia.Close
Set Provincia = Nothing ' chiudo il recordset

%>
</select>
<% ElseIf (Request.QueryString("regione") <> "") AND (Request.QueryString("provincia") <> "") Then %>
Sigla provincia selezionata: <%=Provincia%><br /><br />
<% 

End If 


' >>>>>>>>>>> SELEZIONO IL COMUNE <<<<<<<<<<<<<

If (Request.QueryString("regione") <> "") AND (Request.QueryString("provincia") <> "") AND (Request.QueryString("comune") = "") Then 

%>
Seleziona comune: <select name="comune">
<option value=""></option><%

'  *** recupero i comuni associati alla provincia ***
Set Comune = Server.CreateObject("ADODB.Recordset")
	Comune.ActiveConnection = strConnect
	Comune.Source = "SELECT loc_desc, loc_prov FROM comuni WHERE Loc_Prov = '"&provincia&"'" 
	Comune.CursorType = 0
	Comune.CursorLocation = 2
	Comune.LockType = 1
	Comune.Open()

	Comune_numRows = 0
	Rp__Comune = 999 ' numero max record visualizzati
	Comune_numRows = Comune_numRows + Rp__Comune

While ((Rp__Comune <> 0) AND (NOT Comune.EOF)) 
	
	Rs_Comune = (Comune.Fields.Item("Loc_Desc").Value)

%><option value="<%=Rs_Comune%>" onClick="parent.location = 'default.asp?regione=<%=regione%>&provincia=<%=provincia%>&comune=<%=Rs_Comune%>'"><%=Rs_Comune%></option><%

	Rp__Comune=Rp__Comune+1
	Rp__Comune=Rp__Comune-1
	Comune.MoveNext()
Wend
	Comune.Close
Set Comune = Nothing ' chiudo il recordset

%>
</select>
<% ElseIf (Request.QueryString("regione") <> "") AND (Request.QueryString("provincia") <> "") AND (Request.QueryString("comune") <> "") Then %>
Comune selezionata: <%=Comune%><br /><BR />
<% 

End If 


' >>>>>>>>>>> RISULTATO FINALE <<<<<<<<<<<<<

If (Request.QueryString("regione") <> "") AND (Request.QueryString("provincia") <> "") AND (Request.QueryString("comune") <> "") Then 

'  *** RISULTATO FINALE ***
Set rs = Server.CreateObject("ADODB.Recordset")
	rs.ActiveConnection = strConnect
	rs.Source = "Select * from comuni where loc_desc='"&comune&"'" 
	rs.CursorType = 0
	rs.CursorLocation = 2
	rs.LockType = 1
	rs.Open()
%>
<br/>
<br/>
<br/>
<div align="center">Hai scelto il comune di <b><%=comune%> ( <%=provincia%> )</b></div>
<br/>
<div align="center">in  <b><%=regione%></b></div>
<div align="center">val1 =   <b><%=rs("val1")%></b></div>
<div align="center">val2 =   <b><%=rs("val2")%></b></div>
<div align="center">zona =   <b><%=rs("zona")%></b></div>
<div align="center">
<br />
<br />
<br />
<a href="default.asp">Reset</a>
<br />
</div>
<%

	rs.Close
Set rs = Nothing ' chiudo il recordset


End If 

' Fine script 28/12/2010

%>

Vedi se ti garba così :rolleyes:

Ovvio che questo file l'ho testato 5 minuti, lo si può migliorare alla grande in quanto il 99% è tutto ASP, compatibile con qualsiasi browser e qualsiasi versione.
 
Ultima modifica:

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
Accidenti, hai ragione.
L'unico frammento di Javascript non funziona come deve.

Senti, l'ho adattato senza una riga di Javascript, dagli un'occhio se ti può andar bene così, sicuramente sarà compatibile con tutto (spero):

Codice:
<%
' connessione al DB
Dim strConnect
	strConnect = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("database.mdb") 

' Query String
Dim regione
Dim provincia
Dim comune
	regione = Trim(Mid(Request.Form("regione"), 1, 50))
	provincia = Trim(Mid(Request.Form("provincia"), 1, 50))
	comune = Trim(Mid(Request.Form("comune"), 1, 50))
	

' >>>>>>>>>>> SELEZIONO LA REGIONE <<<<<<<<<<<<<

If Trim(Mid(Request.Form("regione"), 1, 50)) = "" Then 

%>
<form method="post" action="<%=Request.ServerVariables("PATH_INFO")%>">
Seleziona regione: <select name="regione">
<option value=""></option><%

'  *** recupero le regioni ***
Set Regione = Server.CreateObject("ADODB.Recordset")
	Regione.ActiveConnection = strConnect
	Regione.Source = "SELECT DISTINCT pr_regione FROM province" 
	Regione.CursorType = 0
	Regione.CursorLocation = 2
	Regione.LockType = 1
	Regione.Open()

	Regione_numRows = 0
	Rp__Regione = 999
	Regione_numRows = Regione_numRows + Rp__Regione

While ((Rp__Regione <> 0) AND (NOT Regione.EOF)) 
	
	Rs_regione = (Regione.Fields.Item("Pr_Regione").Value)

%><option value="<%=Rs_regione%>"><%=Rs_regione%></option><%

	Rp__Regione=Rp__Regione+1
	Rp__Regione=Rp__Regione-1
	Regione.MoveNext()
Wend
	Regione.Close
Set Regione = Nothing ' chiudo il recordset

%>
</select>
<input type="submit" name="Go" value="Go" />
</form>
<% Else %>
Regione selezionata: <%=regione%><br /><br />
<% 

End If 


' >>>>>>>>>>> SELEZIONO LA PROVINCIA <<<<<<<<<<<<<

If (Trim(Mid(Request.Form("regione"), 1, 50)) <> "") AND (Trim(Mid(Request.Form("provincia"), 1, 50)) = "") Then 

%>
<form method="post" action="<%=Request.ServerVariables("PATH_INFO")%>">
<input type="hidden" name="regione" value="<%=regione%>" />
Seleziona provincia: <select name="provincia">
<option value=""></option><%

'  *** recupero le provincie ***
Set Provincia = Server.CreateObject("ADODB.Recordset")
	Provincia.ActiveConnection = strConnect
	Provincia.Source = "SELECT * FROM province WHERE pr_regione= '"&regione&"'" 
	Provincia.CursorType = 0
	Provincia.CursorLocation = 2
	Provincia.LockType = 1
	Provincia.Open()

	Provincia_numRows = 0
	Rp__Provincia = 999
	Provincia_numRows = Provincia_numRows + Rp__Provincia

While ((Rp__Provincia <> 0) AND (NOT Provincia.EOF)) 
	
	Rs_Provincia = (Provincia.Fields.Item("Pr_Desc").Value)
	Rs_Provincia_Sigla = (Provincia.Fields.Item("Pr_Sigla").Value)

%><option value="<%=Rs_Provincia_Sigla%>"><%=Rs_Provincia%></option><%

	Rp__Provincia=Rp__Provincia+1
	Rp__Provincia=Rp__Provincia-1
	Provincia.MoveNext()
Wend
	Provincia.Close
Set Provincia = Nothing ' chiudo il recordset

%>
</select>
<input type="submit" name="Go" value="Go" />
</form>

<% ElseIf (Trim(Mid(Request.Form("regione"), 1, 50)) <> "") AND (Trim(Mid(Request.Form("provincia"), 1, 50)) <> "") Then %>
Sigla provincia selezionata: <%=Provincia%><br /><br />
<% 

End If 


' >>>>>>>>>>> SELEZIONO IL COMUNE <<<<<<<<<<<<<

If (Trim(Mid(Request.Form("regione"), 1, 50)) <> "") AND (Trim(Mid(Request.Form("provincia"), 1, 50)) <> "") AND (Trim(Mid(Request.Form("comune"), 1, 50)) = "") Then 

%>
<form method="post" action="<%=Request.ServerVariables("PATH_INFO")%>">
<input type="hidden" name="regione" value="<%=regione%>" />
<input type="hidden" name="provincia" value="<%=provincia%>" />
Seleziona comune: <select name="comune">
<option value=""></option><%

'  *** recupero i comuni ***
Set Comune = Server.CreateObject("ADODB.Recordset")
	Comune.ActiveConnection = strConnect
	Comune.Source = "SELECT loc_desc, loc_prov FROM comuni WHERE Loc_Prov = '"&provincia&"'" 
	Comune.CursorType = 0
	Comune.CursorLocation = 2
	Comune.LockType = 1
	Comune.Open()

	Comune_numRows = 0
	Rp__Comune = 999
	Comune_numRows = Comune_numRows + Rp__Comune

While ((Rp__Comune <> 0) AND (NOT Comune.EOF)) 
	
	Rs_Comune = (Comune.Fields.Item("Loc_Desc").Value)

%><option value="<%=Rs_Comune%>"><%=Rs_Comune%></option><%

	Rp__Comune=Rp__Comune+1
	Rp__Comune=Rp__Comune-1
	Comune.MoveNext()
Wend
	Comune.Close
Set Comune = Nothing ' chiudo il recordset

%>
</select>
<input type="submit" name="Go" value="Go" />
</form>
<% ElseIf (Trim(Mid(Request.Form("regione"), 1, 50)) <> "") AND (Trim(Mid(Request.Form("provincia"), 1, 50)) <> "") AND (Trim(Mid(Request.Form("comune"), 1, 50)) <> "") Then %>
Comune selezionato: <%=Comune%><br /><BR />
<% 

End If 


' >>>>>>>>>>> RISULTATO FINALE <<<<<<<<<<<<<

If (Request.Form("regione") <> "") AND (Request.Form("provincia") <> "") AND (Request.Form("comune") <> "") Then 

Set rs = Server.CreateObject("ADODB.Recordset")
	rs.ActiveConnection = strConnect
	rs.Source = "Select * from comuni where loc_desc='"&comune&"'" 
	rs.CursorType = 0
	rs.CursorLocation = 2
	rs.LockType = 1
	rs.Open()
%>
<br/><br/><br/><br/><br/><br/>
<div align="center">Hai scelto il comune di <b><%=comune%> ( <%=provincia%> )</b></div>
<br/>
<div align="center">in  <b><%=regione%></b></div>
<div align="center">val1 =   <b><%=rs("val1")%></b></div>
<div align="center">val2 =   <b><%=rs("val2")%></b></div>
<div align="center">zona =   <b><%=rs("zona")%></b></div>
<div align="center"><br /><br /><br /><a href="<%=Request.ServerVariables("PATH_INFO")%>">Reset</a><br /></div>
<%

	rs.Close
Set rs = Nothing ' chiudo il recordset


End If 

' script 28/12/2010
' modificato 29/12/2010

%>

In pratica il seguente codice:
Codice:
<option value="<%=Rs_regione%>" [B][COLOR="red"]onClick="parent.location = 'default.asp?regione=<%=Rs_regione%>'"[/COLOR][/B]>
si occupava del submit, probabilmente non funziona con tutti i browser, mi dispiace.
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
W MySQL SELECT list dinamica MySQL 0
T problema con select dinamica con jquery Javascript 0
L [PHP] SELECT DINAMICA PHP 0
MatMac System [PHP] Gestione dinamica select-option PHP 3
D Come salvare scelta della select "dinamica" ajax-php? Come dato php o attributo value tag option? Ajax 5
T [Javascript] un form con select dinamica che funzioni da menù... Javascript 2
asevenx [PHP] select dinamica con valori estratti dal database in base alle scelte precedenti PHP 3
A Aiuto per Select form dinamica PHP 0
F Problema selezione dinamica select/jsp/mysql Javascript 0
C Select dinamica con option prelevati da un file xml Ajax 1
N Validazione form e select dinamica Javascript 5
E problema con select dinamica - doctype - ie ASP.NET 4
S Problema con 2 funzioni:array,select dinamica Javascript 21
T Problema con select dinamica Javascript 2
M Select dinamica in javascript, aiuto... Javascript 1
C Select dinamica con PHP PHP 10
A Select "dinamica" nella stessa pagina PHP 9
N Select dinamica con utilizzo di php e JQuery jQuery 5
P Problemi select dinamica PHP 0
S Aggiornamento contenuto di un div dopo la creazione di una select dinamica Javascript 0
B Select dinamica PHP 4
L Ripetere Campi disabilitando input in riferimento ad un valore della select jQuery 0
otto9due Ordinare option di una select Javascript 5
W MySQL ciclo in SELECT MySQL 0
M Select Option dentro una Table jQuery 2
G Colorare menu select attraverso ricerca php PHP 0
L problema con query select PHP 2
F menù select dinamico da db in php PHP 3
D popolare campi tra th alla select PHP 36
M Estrarre valore con SELECT COUNT PHP 0
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
L Select Dinamiche...da txt? PHP 3
E Php select option e ajax PHP 23
R Select concatenata che non funziona la seconda volta Ajax 3
L select join e sottrazione punti PHP 13
L input dati con inser into select ? PHP 4
V hierarchy-select jQuery 0
Emix Select concatenate php sql ajax PHP 2
F query e form con select multipla PHP 17
T recupero valori select multipla da android Javascript 3
J php, scegliere autista da select e mostrare se ha fatto un incidente PHP 8
Tommy03 Select in ordine per numero di record MySQL 7
J Far comparire e scomparire un div con un select Javascript 1
M Opzioni select da 1 a 200 PHP 0
I Fatal error: Query Failed! SQL: SELECT * INTO OUTFILE PHP 1
C input in sostituzione della select PHP 2
G Insert into select - Aiuto MySQL 0
max1974 autocomplete trigger select jQuery 0
X [Select] Valori chiave non presenti in un'altra tabella MySQL 2
M Estrarre dati da una select HTML PHP 3

Discussioni simili