Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di lucalicc
    Registrato dal
    Sep 2002
    Messaggi
    6,926

    Select che dipende da altra select dinamica

    Devo utilizzare due select ricorsive, ovvero le opzioni della seconda dipendo da quanto scelto con la prima come

    regioni (select1) -> provincie (select2)

    ho gia' realizzato quanto mi serve con javascript e un array ma ora si stanno ingrandendo le opzioni e dovra essere riprodotto su piu pagine per cui mi occorre necessariamente che i dati vengano prelevati da un database.

    Non ho problemi per popolare una select con i dati presi da un database ma non riesco a creare la dipendenza tra le due select...

    Qualche consiglio?
    Grazie 1000 luca

  2. #2
    crea l'array in asp e poi lo unisci al javascript (in javascript se inserisci i tag asp li riconosce)

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da santino83
    crea l'array in asp e poi lo unisci al javascript (in javascript se inserisci i tag asp li riconosce)
    Sarei curioso di conoscere la tua spiegazione di questa affermazione :master:

    codice:
    <form>
    <select name="uno" onchange="this.form.submit()">
    <%
    vecchio_uno = request("uno")
    sql = "select valore,descrizione from uno order by descrizione"
    set rs=con.execute(sql)
    if vecchio_uno="" then vecchio_uno=rs("valore")
    do until rs.eof
      response.write "<option value="""&rs("valore")&""""
      if vecchio_uno=rs("valore") then response.write " selected"
      response.write ">"&rs("descrizione")&"</option>"&vbCrLf
      rs.moveNext
    loop
    rs.close
    %>
    </select>
    <select name="due">
    <%
    vecchio_due = request("due")
    sql = "select valore,descrizione from due where chiave='"&vecchio_uno"&' order by descrizione"
    set rs=con.execute(sql)
    do until rs.eof
      response.write "<option value="""&rs("valore")&""""
      if vecchio_due=rs("valore") then response.write " selected"
      response.write ">"&rs("descrizione")&"</option>"&vbCrLf
      rs.moveNext
    loop
    rs.close
    set rs=nothing
    %>
    </select>
    Questa la base... mancano diversi controlli ma puoi svilupparlo ed adattarlo alle tue esigenze.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  4. #4
    Utente di HTML.it L'avatar di lucalicc
    Registrato dal
    Sep 2002
    Messaggi
    6,926
    ciao e grazie per l'attenzione...

    non riesco a far funzionare lo script che mi hai suggerito...
    Ho cambiato i campi in relazione al mio database ma non funziona...

    A parte la connessione al database, la tabella è una e si chiama marche, i campi sono due e sono marca e modello
    (ad esempio marca Fiat e modelli uno punto brava ecc)

    Io vorrei che la prima select mi indicasse le marche, la seconda i modelli riferiti a quella marca...

    ho provato a integrare il tuo script con quello generato da dreamweaver per le liste dinamiche (uso questo sw) e mi è venuto come puoi vedere in fondo..

    nella maschera di composizione della query sql dei comportamenti applicazioni ho messo che la condizione di filtro per il campo modelli è la variabile vecchio_uno, che dovrebbe essere valorizzata dall'evento onchange della prima select in questo modo: vecchio_uno = request("uno")
    ma non funziona, la prima select si popola correttamnte ma la seconda resta miseramente vuota.

    Grazie per l'aiuto...


    Dim rsModelli__MMColParam
    rsModelli__MMColParam = "1"
    If (Application("vecchio_uno") <> "") Then
    rsModelli__MMColParam = Application("vecchio_uno")
    End If
    %>
    <%
    Dim rsModelli
    Dim rsModelli_numRows

    Set rsModelli = Server.CreateObject("ADODB.Recordset")
    rsModelli.ActiveConnection = MM_connRicambi_STRING
    rsModelli.Source = "SELECT modello FROM marche WHERE marca = '" + Replace(rsModelli__MMColParam, "'", "''") + "'"
    rsModelli.CursorType = 0
    rsModelli.CursorLocation = 2
    rsModelli.LockType = 1
    rsModelli.Open()

    rsModelli_numRows = 0
    %>
    ________

    <form name="form1" method="post" onchange="this.form.submit()">



    <select name="uno" id="uno">
    <%
    vecchio_uno = request("uno")
    While (NOT rsMarche.EOF)
    %>
    <option value="<%=(rsMarche.Fields.Item("marca").Value)%>" ><%=(rsMarche.Fields.Item("marca").Value)%></option>
    <%
    rsMarche.MoveNext()
    Wend
    If (rsMarche.CursorType > 0) Then
    rsMarche.MoveFirst
    Else
    rsMarche.Requery
    End If
    %>
    </select>
    </p>



    <select name="due" id="due">
    <%

    While (NOT rsModelli.EOF)
    %>
    <option value="<%=(rsModelli.Fields.Item("modello").Value) %>"><%=(rsModelli.Fields.Item("modello").Value)%> </option>
    <%
    rsModelli.MoveNext()
    Wend
    If (rsModelli.CursorType > 0) Then
    rsModelli.MoveFirst
    Else
    rsModelli.Requery
    End If
    %>
    </select>
    </p>
    </form>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.