Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    32

    Categorie e subcategorie

    Ciao a tutti,
    innanzitutto un saluto a tutti,
    questa è la mia prima volta in questo forum!
    Ecco il mio problema:
    ho una form contenente due select (Regioni e Provincie),
    vorrei fare in modo che l'utente quando seleziona una regione, l'altro select mostra l'elenco delle provincie della suddetta regione.
    Chiaramente i dati sono in un db access in due tabelle diverse.

    Spero di essere stato chiaro,
    ringrazio anticipatamente

  2. #2
    Suppongo che nella tabellaProvincie ci sia il campo idRegione in modo da relazionare la provincia alla regione giusta.
    Allora.
    Crei una prima combo con l'elenco delle regioni.
    Nel value metti l'id e come etichetta il testo della regione.
    All'onchange passi alla pagina l'idRegione selezionato e fai eseguire la seconda query per la seconda combo.
    codice:
    <%
    pagina = request.serverVariables("PATH_INFO")
    
    idRegione = request.queryString("idRegione")
    if len(idRegione) > 0 and isNumeric(idRegione) then 
      idRegione = cLng(idRegione)
    else
      idRegione = 0
    end if
    
    idProvincia = request.queryString("idProvincia")
    if len(idProvincia) > 0 and isNumeric(idProvincia) then 
      idProvincia = cLng(idProvincia)
    else
      idProvincia = 0
    end if
    %>
    <form method="get" action="<%=pagina%>">
    <%
    set conn = server.createObject("ADODB.Connection")
    conn.open connString
    
    sqlReg = "SELECT * FROM tabellaRegioni ORDER BY nomeRegione"
    set rsReg = conn.execute(sqlReg)
      if not rsReg.eof then
    %>
    <select name="idRegione" onchange="document.location.href=<%=pagina%>?idRegione='+this.value">
      <option value="0">SELEZIONA</option>
    <%
        do until rsReg.eof
    %>
      <option value="<%=rsReg("idRegione")%>"<% if idRegione = rsReg("idRegione") %> selected="selected"<% end if %>><%=rsReg("nomeRegione")%></option>
    <%
        rsReg.moveNext
        loop
    %>
    </select> 
    <%
      end if
    rsReg.close
    set rsReg = nothing
    
    if idRegione > 0 then
    sqlProv = "SELECT * FROM tabellaProvincie WHERE idRegione = " & idRegione
    set rsProv = conn.execute(sqlProv)
    
      if not rsProv.eof then
    %>
    <select name="idProvincia" onchange="document.location.href=<%=pagina%>?idRegione=<%=idRegione%>&amp;idProvincia='+this.value">
      <option value="0">SELEZIONA</option>
    <%
        do until rsProv.eof
    %>
      <option value="<%=rsReg("idProv")%>"<% if idProv = rsReg("idProv") %> selected="selected"<% end if %>><%=rsProv("nomeProvincia")%></option>
    <%
        rsProv.moveNext
        loop
    %>
    </select>
    <%
      end if
    rsProv.close
    set rsProv = nothing
    
    conn.close
    set conn = nothing
    %>
    <input type="submit" value="seleziona" />
    </form>

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    32
    Grazie Mems,
    Innanzitutto il tuo codice mi ha fatto capire circa come si realizza il tutto.
    Cmq dopo che scelgo la regione, mi da questo errore:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

    [Microsoft][Driver ODBC Microsoft Access] Tipi di dati non corrispondenti nell'espressione criterio.

    /puteca/12/amnipu/el.asp, line 52

    Ho controllato tutto ma niente, lo fa sempre!

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    32

    AIUTO

    Non mi funziona!
    Continuo a controllare tutto ma niente!

  5. #5
    Che hai alla riga 52?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    32
    Ciao

    in quella riga ho questo:
    set rsProv = conn.execute(sqlProv)

    Come stringa di connessione al db ho scritto questo:
    set Conn=Server.CreateObject("ADODB.Connection")
    connString="driver={Microsoft Access Driver (*.mdb)};"
    connString=connString & "DBQ=" & server.MapPath("/mdb-database/database.mdb")
    Conn.Open connString

    Praticamente se alla connessione della provincia tolgo la condizione (WHERE)
    non da errore


    Grazie di tutto

  7. #7
    Scusa, ma il campo idProv di che tipo è?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    32
    idprov è contatore della tabella provincie

    ma la condizione è tra il record queryString e un campo testo nella tabella regioni

  9. #9
    Il mio esempio, all'inizio, crea una select (combobox) con nei value gli ID delle regioni.
    Selezionata una regione viene passato via queryString alla stessa pagina l'ID regione selezionato che viene recuperato e memorizzato dentro la variaibile idRegione e passato nella query sqlProv per selezionare tutti i record dalla tabella delle provincie che hanno come idRegione quello passato via queryString in modo da popolare la seconda select (combobox) con i dati corrispondenti.
    Adesso vediamo il tuo codice.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    32
    Questa è la pagina completa:


    <%
    set Conn=Server.CreateObject("ADODB.Connection")
    connString="driver={Microsoft Access Driver (*.mdb)};"
    connString=connString & "DBQ=" & server.MapPath("/mdb-database/fotoputeca.mdb")
    Conn.Open connString

    pagina = request.serverVariables("PATH_INFO")

    idRegione = request.queryString("idRegione")
    if len(idRegione) > 0 and isNumeric(idRegione) then
    idRegione = cLng(idRegione)
    else
    idRegione = 0
    end if

    idProvincia = request.queryString("idProvincia")
    if len(idProvincia) > 0 and isNumeric(idProvincia) then
    idProvincia = cLng(idProvincia)
    else
    idProvincia = 0
    end if
    %>
    <form method="get" action="<%=pagina%>">
    <%
    set conn = server.createObject("ADODB.Connection")
    conn.open connString

    sqlReg = "SELECT * FROM categorie ORDER BY idcat"
    set rsReg = conn.execute(sqlReg)
    if not rsReg.eof then
    %>
    <select name="idRegione" onchange="document.location.href=<%=pagina%>?idReg ione='+this.value">
    <option value="0">SELEZIONA</option>
    <%
    do until rsReg.eof
    %>
    <option value="<%=rsReg("idcat")%>"<% if idRegione = rsReg("idcat") then %> selected="selected"<% end if %>><%=rsReg("nomecat")%></option>
    <%
    rsReg.moveNext
    loop
    %>
    </select>
    <%
    end if
    rsReg.close
    set rsReg = nothing

    if idRegione > 0 then
    set conn = server.createObject("ADODB.Connection")
    conn.open connString
    sqlProv = "SELECT * FROM subcategorie where cat=" & idRegione
    set rsProv = conn.execute(sqlProv)

    if not rsProv.eof then
    %>
    <select name="idProvincia" onchange="document.location.href=<%=pagina%>?idReg ione=<%=idRegione%>&idProvincia='+this.value">
    <option value="0">SELEZIONA</option>
    <%
    do until rsProv.eof
    %>
    <option value="<%=rsProv("idsubcat")%>"<% if idProvincia = rsProv("idsubcat") then %> selected="selected"<% end if %>><%=rsProv("nomesubcat")%></option>
    <%
    rsProv.moveNext
    loop
    %>
    </select>
    <%
    end if
    rsProv.close
    set rsProv = nothing

    conn.close
    set conn = nothing
    end if
    %>
    <input type="submit" value="seleziona" />
    </form>


    Un'altra domanda:
    dopo aver selezionato la provincia, come faccio a passare i dati alla seconda pagina che mi genera l'email?
    Spero di essere stato chiaro

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 © 2026 vBulletin Solutions, Inc. All rights reserved.