• User Attivo

    valore di una select basato su altra select

    ciao a tutti!!!!
    ho due select e una dipende dall'altra, ovvero la seconda deve essere popolata da una query SQL su db access, che effettua una SELECT WHERE (valore select1).
    Ho bisogno che la select2 si aggiorni ad ogni variazione della select1 alla quale ho già attribuito un metodo onChange, ma non so cosa devo dire questo metodo onChange.
    grazie 🙂

    Marco


  • Moderatore

    Scusa non mi è chiaro come hai attribuito il metodo onChange alla query access? Potresti postare quel pezzo di codice?


  • User Attivo

    Ecco questa è la prima select:

          <select name="regione" type="text" id="name4" value="<%=regione%>" onchange="changeRegione()" size="1" style="width: 289">
         <option value="0">Seleziona</option>
    .....poi tutte le option 
    

    E questa la seconda:

    [code] <select name="citta" type="text" id="citta" value="<%=citta%>" size="1" style="width: 289">
    <option value=0>Seleziona</option>
    <% dim rs, valore, nome, cerca, cn
    if regione<>0 then
    set cn = server.CreateObject("Adodb.Connection")
    set rs = server.CreateObject("Adodb.Recordset")
    cn.Open conn
    rs.open "Select * From citta Where padre1="&regione&" ORDER BY citta",cndisc,2,3
    do while not rs.eof
    valore=rs.fields("id")
    nome=rs.fields("disciplina")
    response.write("<option value=" & valore &">" & nome &"</option>")
    rs.movenext
    loop
    End if%>
    </select> [code]

    devo scrivere la OnChange in modo tale che faccia un refresh della seconda select ad ogni cambio della prima select!
    grazie,

    Marco


  • Moderatore

    Potresti semplicemente scrivere un

    OnChange="window.open('tuapagina.asp?regione='+this.options[this.selectedIndex].value);"
    

    Cioè, al cambio nella prima lista riposti la stessa pagina passando nel querystring il valore selezionato, che poi utilizzerai nella seconda select...

    ovvero:

    if Request.QueryString("regione")<>"" and Request.QueryString("regione")<> 0 then
    ----
      rs.open "Select * From citta Where padre1="&Request.QueryString("regione")&" ORDER BY citta",cndisc,2,3
    ----
    End If
    
    

    Fammi sapere com'è andata... :ciauz:


  • User Attivo

    ciao Marco,
    innanzitutto grazie!! così funziona, devo solo passargli gli altri parametri del form via request.querystring, tuttavia vorrei non si aprisse in una nuova finestra, ma facesse un reload della pagina!
    Mi confermi che non c'è modo di fare un reload solo della select, perchè io ricordo che se non c'è di mezzo la query SQL si riesce a fare, o sbaglio? ma la query SQL viene eseguita solo all'apertura della pagina, giusto?
    grazie del supporto!!

    Marco


  • Moderatore

    ...oops! :bho:

    Prova con ```
    window.location.replace('tuapagina.asp?regione='+this.options[this.selectedIndex].value')

    
    :ciauz:

  • User Attivo

    ciao Marco!
    grazie mille, così funziona!!
    mi resta il problema di passargli i valori degli altri 8 campi del modulo nel caso l'utente li abbia già compilati...
    immagino che si possa fare solo con la stringa &variabile=valore...etc,vero?
    grazie del prezioso supporto!!!

    Marco


  • User Attivo

    il fatto è che non riesco a passargli tutti gli altri campi come variabili...ideale sarebbe poter fare il reload del solo div contenente la select o della sola select...ma immagino non si possa!
    scusa le scocciature!
    grazie,

    Marco