Select Multipli Dinamici Da Database Access

marconi

Utente Attivo
1 Feb 2008
50
0
0
Ciao a tutti.
Oggi ho questo problema...Ho delle selct che straggono i valori da database..al cambiare di una select cambiano i valori delle altre, come se la prima select facesse da filtro e fin qui ci sono riuscito in questo modo:
<select name="categoria" id="select4" onchange="window.location.href='select_dinamiche.asp?frn_region='+this.value;">
<option value="">Seleziona Provincia</option>
<%
While (NOT Recordset1.EOF)
%>
<option value="<%=(Recordset1.Fields.Item("frn_region").Value)%>"><%=(Recordset1.Fields.Item("frn_region").Value)%></option>
<%
Recordset1.MoveNext()
Wend
If (Recordset1.CursorType > 0) Then
Recordset1.MoveFirst
Else
Recordset1.Requery
End If
%>
</select>

Ora se dalla prima select seleziono la provincia mi da la regione e i comuni di quella provincia...e per questo tipo di sistema va bene...ma se io vorrei aggiungere un altra select ad esempio modificando il suddeto codice in questa maniera:
- Select Regione....e nella seconda select mi da le province di quella regione
- Select province ....e nella terza selct mi da le città della provincia che ho scelto e della regione che ho scelto.

In pratica come si fa a passare piu' valori mediante il metodo get di piu' select perchè per un valore solo ho usato: windows.location.href ma se volglio passarne due o piu' di valori senza resettare quelllo scelto prima come faccio?
 

lukeonweb

Utente Attivo
5 Mar 2003
5.175
13
38
46
Napoli
www.lucaruggiero.it
Basta che li accodi in querystring.

Non ho nemmeno letto il tuo esempio (mi fido che funziona) quindi ti spiego la logica.

Tu hai la pagina "luoghi.asp" che per default ti da la select delle regioni.

Quando selezioni la regione hai, ad esempio:

luoghi.asp?reg=1

A questo punto hai la select delle province. Se la sfogli avrai:

luoghi.asp?reg=1&prv=3

Nella seconda select devi costruire l'onchange in questo modo:

<select name="prv" onchange="document.location.href='luoghi.asp?reg=<%=reg%>&prv='+this.value">

Fammi sapere ;)
 

marconi

Utente Attivo
1 Feb 2008
50
0
0
Sei un fenomeno.....ma manca qualcosina per la perfezione

Caro luke quello che mi hai detto mi è stato molto utile..allore ci sono due problemi:
1) Non rimangono in memoria nelle select le scelte effettuate.
Cioè se io ho la REGIONE COSI' COMPOSTA
- Seleziona Regione
- Abruzzo
- Campania
- ............
- ............
e via dicendo se selezionO la regione la pagina mi si aggiorna il parametro passa al secondo recrodset che legge il parametro url cosi' come te lo mostro; [http://localhost/test/TMPv6djevqknq.asp?frn_state=Calabria], ora fatta questa scelta mi si apre la seconda select PROVINCE, ma nella prima quella delle regioni non mi rimane in memoria Calabria come vedi dall'url.
2) Il secondo problema nasce dalla seconda scelta, cioè delle province, io dopo aver scelto la regione scelgo la provincia e mi da quest'url:
[http://localhost/test/TMPv6djevqknq.asp?frn_state=&frn_region=KR] come puoi vedere il parametro nuovo è stato aggiunto ma manca frn_state = a niente!!

ti posto il codice:
<table width="209" border="0" align="center" cellpadding="0" cellspacing="5">
<tr>
<td width="93"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Regione</font></strong></td>
<td width="338"> <div align="left"><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif">
<select name="regione" id="REGIONE" onchange="window.location.href='?frn_state='+this.value">
<option value="">Seleziona Regione</option>
<%
While (NOT regioni.EOF)
%>
<option value="<%=(regioni.Fields.Item("frn_state").Value)%>"><%=(regioni.Fields.Item("frn_state").Value)%></option>
<%
regioni.MoveNext()
Wend
If (regioni.CursorType > 0) Then
regioni.MoveFirst
Else
regioni.Requery
End If
%>
</select>
</font></div></td>
</tr>
<tr>
<td><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Provincia</font></strong></td>
<td> <div align="left"><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif">
<select name="province" id="province" onchange="document.location.href='?frn_state=<%=regione%>&frn_region='+this.value">
<option value="">Seleziona Provincia</option>
<%
While (NOT province.EOF)
%>
<option value="<%=(province.Fields.Item("code").Value)%>"><%=(province.Fields.Item("region").Value)%></option>
<%
province.MoveNext()
Wend
If (province.CursorType > 0) Then
province.MoveFirst
Else
province.Requery
End If
%>
</select>
</font></div></td>
</tr>
<tr>
<td><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Citt&agrave;</font></strong></td>
<td> <div align="left">
<select name="select">
<option value="">Seleziona Città</option>
<%
While (NOT paesi.EOF)
%>
<option value="<%=(paesi.Fields.Item("city").Value)%>"><%=(paesi.Fields.Item("city").Value)%></option>
<%
paesi.MoveNext()
Wend
If (paesi.CursorType > 0) Then
paesi.MoveFirst
Else
paesi.Requery
End If
%>
</select>
</div></td>
</tr>
</table>
Spero possa risolvere questo problema...mille grazie in anticipo..
 

lukeonweb

Utente Attivo
5 Mar 2003
5.175
13
38
46
Napoli
www.lucaruggiero.it
Non mi piace molto come costruisci l'onchange delle select.

Dovresti modificare come ti ho suggerito, in modo da passare ciclicamente i valori prima dalla prima select e poi dalla seconda.

In sostanza:

Seleziona le province della regione...
<select name="prv" onchange="document.location.href='luoghi.asp?reg='+this.value">

...

Seleziona i comuni della provincia...
<select name="prv" onchange="document.location.href='luoghi.asp?reg=< %=reg%>&prv='+this.value">

...

Naturalmente, magari, nascondi con delle If la select delle province se la variabile "reg" non è valorizzata, e quella dei comuni se la variabile "prv" non è valorizzata.

Usi delle variabili diverse... ma il senso è quello :)
 

marconi

Utente Attivo
1 Feb 2008
50
0
0
Sempre gentile!!!! Grazie Mille

Caro Luke ho risolto il secondo dei miei problemi in questa maniera:
nel [head] del codice ho inserito questa funzioncina che mi recupera la variabile dall'url:
<%
Dim reg, provincia
reg = Request.QueryString("frn_state")
provincia = Request.QueryString("frn_region")
%>

e fin qui nessun problema ora alla compilazione del modulo ho nell'url tutte le informazioni che voglio.
___________________________________________________________
Ora non riesco pero' a fare il ciclo delle IF come mi dicevi, logicamente sarebbe cosi':
Se è presente la variabile <%frn_state%> la prima select deve visualizzarmi questa variabile,
ALTRIMENTI mostrami le varie option
____________________________________________________________

sarebbe cosi' credo la logica solo che non lo so fare...cioè per costruirmi da solo il codice avrei bisogno di uno script di partenza che mi faccia vedere + o - quello che devo scrivere e soprattutto dove!!!!

questo è il codice della mia pagina aggiornato.
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/comuni.asp" -->
<%
Dim regioni
Dim regioni_numRows

Set regioni = Server.CreateObject("ADODB.Recordset")
regioni.ActiveConnection = MM_comuni_STRING
regioni.Source = "SELECT DISTINCT frn_state FROM Regions ORDER BY frn_state ASC"
regioni.CursorType = 0
regioni.CursorLocation = 2
regioni.LockType = 1
regioni.Open()

regioni_numRows = 0
%>
<%
Dim province__MMColParam
province__MMColParam = "1"
If (Request.QueryString("frn_state") <> "") Then
province__MMColParam = Request.QueryString("frn_state")
End If
%>
<%
Dim province
Dim province_numRows

Set province = Server.CreateObject("ADODB.Recordset")
province.ActiveConnection = MM_comuni_STRING
province.Source = "SELECT code, region FROM Regions WHERE frn_state = '" + Replace(province__MMColParam, "'", "''") + "'"
province.CursorType = 0
province.CursorLocation = 2
province.LockType = 1
province.Open()

province_numRows = 0
%>
<%
Dim paesi__MMColParam
paesi__MMColParam = "1"
If (Request.QueryString("frn_region") <> "") Then
paesi__MMColParam = Request.QueryString("frn_region")
End If
%>
<%
Dim paesi
Dim paesi_numRows

Set paesi = Server.CreateObject("ADODB.Recordset")
paesi.ActiveConnection = MM_comuni_STRING
paesi.Source = "SELECT * FROM Cities WHERE frn_region = '" + Replace(paesi__MMColParam, "'", "''") + "' ORDER BY city ASC"
paesi.CursorType = 0
paesi.CursorLocation = 2
paesi.LockType = 1
paesi.Open()

paesi_numRows = 0
%>
<%
Dim reg, provincia
reg = Request.QueryString("frn_state")
provincia = Request.QueryString("frn_region")
%>
<html>
<head>
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="462" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><div align="center">
<form name="form1" method="post" action="">
<Fieldset>
<p align="left">
<legend><font color="#0000FF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Fai
la tua Selezione</font></legend>
<div align="left"></div>
</fieldset>

<div align="left"> </p> </div>
<fieldset><legend><font color="#0000FF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Dati
Geografici</font></legend>
<div align="center">
<table width="209" border="0" align="center" cellpadding="0" cellspacing="5">
<tr>
<td width="93"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Regione</font></strong></td>
<td width="338"> <div align="left"><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif">
<select name="selezione" id="REGIONE" onchange="window.location.href='luoghi.asp?frn_state='+this.value">
<option value="">Seleziona Regione</option>
<%
While (NOT regioni.EOF)
%>
<option value="<%=(regioni.Fields.Item("frn_state").Value)%>"><%=(regioni.Fields.Item("frn_state").Value)%></option>
<%
regioni.MoveNext()
Wend
If (regioni.CursorType > 0) Then
regioni.MoveFirst
Else
regioni.Requery
End If
%>
</select>
</font></div></td>
</tr>
<tr>
<td><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Provincia</font></strong></td>
<td> <div align="left"><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif">
<select name="selezione" id="selezione" onchange="document.location.href='?frn_state=<%=reg%>&frn_region='+this.value">
<option value="">Seleziona Provincia</option>
<%
While (NOT province.EOF)
%>
<option value="<%=(province.Fields.Item("code").Value)%>"><%=(province.Fields.Item("region").Value)%></option>
<%
province.MoveNext()
Wend
If (province.CursorType > 0) Then
province.MoveFirst
Else
province.Requery
End If
%>
</select>
</font></div></td>
</tr>
<tr>
<td><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Citt&agrave;</font></strong></td>
<td> <div align="left">
<select name="selezione" id="selezione">
<option value="">Seleziona Città</option>
<%
While (NOT paesi.EOF)
%>
<option value="<%=(paesi.Fields.Item("city").Value)%>"><%=(paesi.Fields.Item("city").Value)%></option>
<%
paesi.MoveNext()
Wend
If (paesi.CursorType > 0) Then
paesi.MoveFirst
Else
paesi.Requery
End If
%>
</select>
</div></td>
</tr>
</table>
<p>
<input name="textfield" type="text" value="<%=reg%>">
<input name="textfield2" type="text" value="<%=provincia%>">
</p>
</div>
</Fieldset>
</form>
</div></td>
</tr>
</table>
<font color="#0000FF" size="2" face="Verdana, Arial, Helvetica, sans-serif"></font>
</body>
</html>
<%
regioni.Close()
Set regioni = Nothing
%>
<%
province.Close()
Set province = Nothing
%>
<%
paesi.Close()
Set paesi = Nothing
%>
 

marconi

Utente Attivo
1 Feb 2008
50
0
0
Ci Sono Riuscitoooooooooo!!!!!!!!

Grazie a te luke sono riuscito a terminare lo script posto tutto il codice così chi ha avuto il mio stesso problema può vederlo

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/comuni.asp" -->
<%
Dim regioni
Dim regioni_numRows

Set regioni = Server.CreateObject("ADODB.Recordset")
regioni.ActiveConnection = MM_comuni_STRING
regioni.Source = "SELECT DISTINCT frn_state FROM Regions ORDER BY frn_state ASC"
regioni.CursorType = 0
regioni.CursorLocation = 2
regioni.LockType = 1
regioni.Open()

regioni_numRows = 0
%>
<%
Dim province__MMColParam
province__MMColParam = "1"
If (Request.QueryString("frn_state") <> "") Then
province__MMColParam = Request.QueryString("frn_state")
End If
%>
<%
Dim province
Dim province_numRows

Set province = Server.CreateObject("ADODB.Recordset")
province.ActiveConnection = MM_comuni_STRING
province.Source = "SELECT code, region FROM Regions WHERE frn_state = '" + Replace(province__MMColParam, "'", "''") + "'"
province.CursorType = 0
province.CursorLocation = 2
province.LockType = 1
province.Open()

province_numRows = 0
%>
<%
Dim paesi__MMColParam
paesi__MMColParam = "1"
If (Request.QueryString("frn_region") <> "") Then
paesi__MMColParam = Request.QueryString("frn_region")
End If
%>
<%
Dim paesi
Dim paesi_numRows

Set paesi = Server.CreateObject("ADODB.Recordset")
paesi.ActiveConnection = MM_comuni_STRING
paesi.Source = "SELECT * FROM Cities WHERE frn_region = '" + Replace(paesi__MMColParam, "'", "''") + "' ORDER BY city ASC"
paesi.CursorType = 0
paesi.CursorLocation = 2
paesi.LockType = 1
paesi.Open()

paesi_numRows = 0
%>
<%
Dim reg, provincia
reg = Request.QueryString("frn_state")
provincia = Request.QueryString("frn_region")
%>
<html>
<head>
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="462" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><div align="center">
<form name="form1" method="post" action="">
<Fieldset>
<p align="left">
<legend><font color="#0000FF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Fai
la tua Selezione</font></legend>
<div align="left"></div>
</fieldset>

<div align="left"> </p> </div>
<fieldset><legend><font color="#0000FF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Dati
Geografici</font></legend>
<div align="center">
<table width="209" border="0" align="center" cellpadding="0" cellspacing="5">
<tr>
<td width="93"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Regione</font></strong></td>
<td width="338"> <div align="left"><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif">
<select name="selezione" id="REGIONE" onchange="window.location.href='luoghi.asp?frn_state='+this.value">
<option value=""><%if reg = "" then
%>
Seleziona Regione
<%else
end if
%>
<%=reg%>
</option>
<%
While (NOT regioni.EOF)
%>
<option value="<%=(regioni.Fields.Item("frn_state").Value)%>"><%=(regioni.Fields.Item("frn_state").Value)%></option>
<%
regioni.MoveNext()
Wend
If (regioni.CursorType > 0) Then
regioni.MoveFirst
Else
regioni.Requery
End If
%>
</select>
</font></div></td>
</tr>
<tr>
<td><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Provincia</font></strong></td>
<td> <div align="left"><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif">
<select name="selezione" id="selezione" onchange="document.location.href='?frn_state=<%=reg%>&frn_region='+this.value">
<option value=""><%if provincia = "" then
%>
Seleziona Provincia
<%else
end if
%>
<%=provincia%>
</option>
<%
While (NOT province.EOF)
%>
<option value="<%=(province.Fields.Item("code").Value)%>"><%=(province.Fields.Item("region").Value)%></option>
<%
province.MoveNext()
Wend
If (province.CursorType > 0) Then
province.MoveFirst
Else
province.Requery
End If
%>
</select>
</font></div></td>
</tr>
<tr>
<td><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Citt&agrave;</font></strong></td>
<td> <div align="left">
<select name="selezione" id="selezione">
<option value="">Seleziona Città</option>
<%
While (NOT paesi.EOF)
%>
<option value="<%=(paesi.Fields.Item("city").Value)%>"><%=(paesi.Fields.Item("city").Value)%></option>
<%
paesi.MoveNext()
Wend
If (paesi.CursorType > 0) Then
paesi.MoveFirst
Else
paesi.Requery
End If
%>
</select>
</div></td>
</tr>
</table>
<p>
<input name="textfield" type="text" value="<%=reg%>">
<input name="textfield2" type="text" value="<%=provincia%>">
</p>
</div>
</Fieldset>
</form>
</div></td>
</tr>
</table>
<font color="#0000FF" size="2" face="Verdana, Arial, Helvetica, sans-serif"></font>
</body>
</html>
<%
regioni.Close()
Set regioni = Nothing
%>
<%
province.Close()
Set province = Nothing
%>
<%
paesi.Close()
Set paesi = Nothing
%>


Luke grazie mille ti ricontatterò pe altre cose sappilo!!!!!!!!
 
Discussioni simili
Autore Titolo Forum Risposte Data
L Select condizionati multipli Javascript 0
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
W MySQL SELECT list dinamica 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
T problema con select dinamica con jquery Javascript 0
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
MarcoGrazia jquery validate, necessità di validare almeno un elemento select su due jQuery 1
T [PHP] Autocompilazione input multiple da una select PHP 1
Alex_70 [PHP] Visualizzare foto tramite select PHP 0
S [PHP] aggiornamento table tramite select senza ricaricare la pagina PHP 5
psicomia Gestione funzione in javascript in tabella richiamare"textarea" valori preimpostati in "select" Javascript 2
M [PHP] Problema con query select PHP 2
C [PHP] Controllo <select> comportamento anomalo PHP 2
G [PHP] Select con opzioni dipendenti da un'altra select PHP 3
L [Javascript] Select option in campi input Javascript 4
M [PHP] Problemi con select PHP 6
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
S [ASP] SALVARE VALORE SELECT OPTION SU CAMPO TABELLA ACCESS Classic ASP 9
max1974 [Javascript] malfunzionamento select Javascript 0
M [PHP] Drop down in campo select PHP 1
D [PHP] Select dinamici PHP 2
G sql select con array in php PHP 1
L [PHP] Form da select compilare campi automaticamente PHP 1
T [php] problema creazione query select-where PHP 5

Discussioni simili