Ciao a tutti,
avevo bisogno di fare delle select dinamiche per province e comuni di appartenenza e cosi' ho trovato sul forum che parlavate dello script di marco orlandi di larianaweb.
Lo script soddisfa quasi al 100% quello che ho bisognosolo che invece di avere 3 select dinamiche(regioni-province-comuni) ho le prime due select dinamiche regioni e province ma quando ho selezionato la provincia giusto devo aprire un imput type=text con dentro un valore, chiamato RRP, preso dalla stessa tabella del db. RRP e' un numerico!!!
il problema dello script in questione e' che la pagina che fa le select (si chiama Dbcomuni.asp)ha un indlude che genera sempre select dinamiche (class_dinamic_select.asp)
ho bisogno di mettere le mani su questo file in modo da fargli capire che quando sono campi regioni e province deve fare una select dinamica invece quando ho RRP deve riportarmi il valore in in campo testo.
partiamo da db comuni.asp (che va benissimo):
<%
value = replace(request("value")&"", "'", "'")
fieldtype = request("type")
set ds = new DinamicSelect
ds.DataBase = "mdb/database.mdb"
if fieldtype = "regioni" then
' REGIONI
ds.DefaultText = "select make"
ds.sql = "select distinct pr_regione from Tab_Provincia"
ds.SelectValue = "pr_regione"
ds.SelectText = "pr_regione"
ds.evento = " onchange=""caricaPagina('dbcomuni.asp?type=provinc ie&value=' " &_
"+ this.options[this.options.selectedIndex].value,'AHAH_provincie');"""
ds.NomeCampo = "regioni"
end if
' PROVINCIE
if fieldtype = "provincie" then
ds.DefaultText = "select detail"
ds.sql = "select * from Tab_Provincia where pr_regione='"& value&"'"
ds.selected = value
ds.SelectValue = "pr_desc"
ds.SelectText = "pr_desc"
ds.evento = " onchange=""caricaPagina('dbcomuni.asp?type=comuni& amp;value=' " &_
"+ this.options[this.options.selectedIndex].value,'AHAH_comuni');"""
ds.NomeCampo = "provincie"
'
end if
if fieldtype = "comuni" then
ds.DefaultText = "select detail"
ds.sql ="SELECT * FROM QueryProvincie where pr_desc='"& value&"'"
ds.selected = value
ds.SelectValue = "RRP"
ds.SelectText = "RRP"
ds.evento = ""
ds.NomeCampo = "comuni"
end if
Response.Write (ds.CreaDinamicSelect())
set ds = nothing
%>
e ora ecco la pagina
file="class_dinamic_select.asp
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 sql1
Public Evento 'impostare l'evento che provvederà al submit "parziale" del form
Public NomeCampo 'impostare il nome del campo (nell'ambito del form)
Public DefaultText
Public Function CreaDinamicSelect()
'creazione e apertura della connessione
tmpString = ""
'tmpString1 = ""
Set conn = Server.createobject("adodb.connection")
connstr = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &_
Server.MapPath("mdb/database.mdb")
conn.open connstr
tmpString = tmpString & "<select style=""width:100%"" name=""" & me.NomeCampo & """" & me.Evento & """>" & vbcrlf
tmpString = tmpString & "<option value="""">" & Me.DefaultText & "</option>" & vbcrlf
'tmpString1 = tmpString1 & "<input type="text" sstyle=""width:100%"" name=""" & me.NomeCampo & """" & me.Evento & """>" & vbcrlf
'creazione del recordset
set rs = Server.Createobject("adodb.recordset")
'apertura del recordset
rs.open me.sql,conn,3,3
do until rs.eof
tmpString = tmpString & "<option value=""" & Trim(rs(me.SelectValue)) & """"
if rs(me.SelectValue) = me.selected then
tmpString = tmpString & "selected = ""selected"""
end if
tmpString = tmpString & ">" & Trim(UCase(rs(me.SelectText))) & "</option>" & vbcrlf
rs.movenext
loop
tmpString = tmpString &"</select>"& vbcrlf
'chiusura e distruzione del recordset
rs.close
set rs = nothing
'chiusura e distruzione della connessione
conn.close
set conn = nothing
CreaDinamicSelect = tmpString
End function
End Class
%>
qualcuno mi sa per favore dare una mano?

Rispondi quotando
