Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it L'avatar di nadia79
    Registrato dal
    Aug 2005
    Messaggi
    187

    Problema select dinamiche

    Ciao a tutti,
    sto cercando di modificare questo Script che riguarda le select dinamiche.

    Io anzichè con 3 select ho 2 select: Categoria e Sottocategoria

    quindi ho due tabelle Categorie con i campi idcategoria (contatore) e categoria (txt) poi un'altra tabella Sottocategorie con i campi idsottocategoria (contatore), sottocategoria (txt) e idcategoria (numerico).

    Ho quindi ridutto ad una funzione lo script Javascript, nella pagina prova.asp:
    codice:
    <script language="JavaScript">
    <!--
    function aggiorna_categoria(){
    	
    	document.form.sottocategoria.value = "";
    	document.form.submit();
    	}
    }
    //-->
    </script>
    Mentre la funzione dinselclass.asp l'ho lasciata invariata.

    Proseguendo invece nella pagina prova.asp ho modificato in questo modo:

    codice:
    				<%
    				set dinselectregioni = new DinamicSelect
    				dinselectregioni.DataBase = "database.mdb"
    				
    				if len(reg) > 0 then
    					dinselectregioni.selected = categoria
    				else
    					dinselectregioni.selected = "Scegli una categoria"
    				end if
    				
    				dinselectregioni.sql = "select * from categorie"
    				dinselectregioni.SelectValue = "idcategoria"
    				dinselectregioni.SelectText = "categoria"
    				dinselectregioni.evento = "onChange='aggiorna_categoria();'"
    				dinselectregioni.NomeCampo = "categoria"
    				dinselectregioni.CreaDinamicSelect()
    				
    				idcat = dinselectregioni.SelectValue = "idcategoria"
    				%>
    Fin qui tutto bene ora però la seconda, sottocategoria non so come farla, io ho scritto così, ma non funziona:

    codice:
    		<%
    				set dinselectprovincie = new DinamicSelect
    				dinselectprovincie.DataBase = "database.mdb"
    				
    				'if len(categoria) > 0 then
    					dinselectprovincie.sql = "select * from sottocategorie where idcategoria=" & idcat
    					''dinselectprovincie.sql = "select * from sottocategorie"
    				'end if
    					
    				dinselectprovincie.selected = sottocategoria
    				
    				dinselectprovincie.SelectValue = "idsottocategoria"
    				dinselectprovincie.SelectText = "sottocategoria"
    				'dinselectprovincie.evento = "onChange='aggiorna_provincia();'"
    				dinselectprovincie.NomeCampo = "sottocategoria"
    				dinselectprovincie.CreaDinamicSelect()
    				%>
    Ma ricevo un errore sull'apertura del recordset! Questo perchè non trova la variabile idcat... come posso fare per fargliela leggere?

    Ah dimenticavo in alto nella pagina prova.asp ho inserito questo codice:

    codice:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    
    <%
    categoria = request("categoria")
    sottocategoria = request("sottocategoria")
    %>
    Ciao e grazie

  2. #2
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    Riazzera e ricomincia; non è difficile.

  3. #3
    Utente di HTML.it L'avatar di nadia79
    Registrato dal
    Aug 2005
    Messaggi
    187
    Come ricomincia?!?

    Non va proprio bene come l'ho strutturato? Avete qualche suggerimento o consiglio?

    Per me non mica facile

  4. #4
    Utente di HTML.it L'avatar di nadia79
    Registrato dal
    Aug 2005
    Messaggi
    187
    Qualche suggerimento o consiglio?
    Il codice che ho modificato è proprio tutto da buttare?

  5. #5
    Utente di HTML.it L'avatar di nadia79
    Registrato dal
    Aug 2005
    Messaggi
    187
    Ho fatto così ma ancora non funziona:
    codice:
    <tr>
    <td>
    <%
    Dim rsCategoria
    Dim sql
    sql = "SELECT * FROM CATEGORIE ORDER BY IDCATEGORIA"
    Set rsCategoria = Server.CreateObject("ADODB.Recordset")
    rsCategoria.Open sql, conn_soft
    %>
    <select name="categoria" id="categoria" onChange="aggiorna_categoria();">
    <%
    Do While not rsCategoria.EOF 
    Response.Write("<option value=" & rsCategoria("IDCATEGORIA") & ">" & rsCategoria("CATEGORIA") & "</option>")
    rsCategoria.Movenext
    Loop
    %>
    </select></td></tr>
    <tr> 
    <td>
    <%
    Dim rsSottoCategoria
    Dim sql1
    sql1 = "SELECT * FROM SOTTOCATEGORIE WHERE IDCATEGORIA" & rsCategoria("IDCATEGORIA")
    Set rsSottoCategoria = Server.CreateObject("ADODB.Recordset")
    rsSottoCategoria.Open sql1, conn_soft
    %>
    <select name="sottocategoria" id="sottocategoria">
    <%
    Do While not rsSottoCategoria.EOF 
    Response.Write("<option value=" & rsSottoCategoria("IDSOTTOCATEGORIA") & ">" & rsSottoCategoria("SOTTOCATEGORIA") & "</option>")
    rsSottoCategoria.Movenext
    Loop
    %>
    </select>
    </td>
    </tr>
    La funzione Javascript nell'evento OnChange aggiornaCategoria è così:

    codice:
    <script language="JavaScript">
    <!--
    function aggiorna_categoria(){
    	
    	document.form.sottocategoria.value = "";
    	document.form.submit();
    	}
    }
    //-->
    </script>
    Ma non funziona e mi dà errore nel recordset sottocategoria mi dice eccezione...
    sembra non leggere il record che gli passo, come posso ovviare a questa cosa?
    :master:
    Suggerimenti?

  6. #6
    ti suggerisco una soluzione un po macchinosa ma molto semplice da mettere in pratica

    se ho ben capito la select2 dipende dal valore che viene scelto nella select1

    assegni alla select1 la proprietà di ricaricamento automatico della pagina asp ONCHANGE per cui ogni volta che verrà scelto un valore la pagina si ricaricherà passando il value dell'option scelta

    alla select2 dici che se il request.querystring della select1 è diverso da "" (quindi non è nullo) carichi i valori che corrispondono alla scelta della select1

    ovviamente devi avere una tabella nel db in cui i valori che dovranno far parte della select2 siano correlati con quelli della select1

    a quel punto puoi pure dire che se il request.querystring della select 1 è ="" la select2 non compare proprio...


    non so se mi sono spiegato bene, ma utilizzando il request.querystring in questo modo si riescono a fare un sacco di cose
    Mr. Fepreto Nirra
    (I've been the wild rover for many of years - Spent all my money on whiskey and beer)
    E' PROPRIO UN BEL LOCALINO, BOB!
    ... ma non è il bicchiere giusto ...

  7. #7
    Utente di HTML.it L'avatar di nadia79
    Registrato dal
    Aug 2005
    Messaggi
    187
    Allora procediamo per gradi...

    in alto alla pagina metto:

    codice:
    idcat = Request.QueryString("categoria")
    Poi nella prima select come devo scrivere? Così?
    codice:
    <select name="categoria" id="categoria" onChange="add_prodotti.asp">
    In questo modo ricarico la pagina giusto? Poi nella select Sottocategoria cosa devo mettere? Un aiutino per favore
    Sono 3 giorni che sto ferma su questa cosa! :master:

  8. #8
    Utente di HTML.it L'avatar di nadia79
    Registrato dal
    Aug 2005
    Messaggi
    187
    nella select se metto l'attributo onChange non mi ricarica la pagina...

  9. #9
    Utente di HTML.it L'avatar di nadia79
    Registrato dal
    Aug 2005
    Messaggi
    187
    Allora sono arrivata a questo punto, per favore un piccolo aiutino, un'indicazione...

    codice:
    in alto alla pagina:
    idcat = request.querystring("idcat")
    
    nella select:
    <select name="categoria" id="categoria" onChange="window.location.href('add_prodotti.asp?idcat=<% =rsCategoria(IDCATEGORIA")%>" />
    
    la select del secondo menù, (con controllo se la variabile è vuota) si basa su questa select:
    
    "SELECT * FROM SOTTOCATEGORIE WHERE IDCATEGORIA=" & idcat
    ma niente non funziona, la prima select reimposta al valore iniziale e non ha quello scelto e la variabiale idcat presa con querystring vale sempre 1, ossia il valore della prima voce del primo menù...


  10. #10
    Utente di HTML.it L'avatar di Galex
    Registrato dal
    Aug 2002
    Messaggi
    667
    codice:
    <form name="nome_form">
    <table><tr><td>
    <%
    
    categoria=request("categoria")
    Dim rsCategoria
    Dim sql
    sql = "SELECT * FROM CATEGORIE ORDER BY IDCATEGORIA"
    Set rsCategoria = Server.CreateObject("ADODB.Recordset")
    rsCategoria.Open sql, conn_soft
    %>
    <select name="categoria" id="categoria" onChange="nome_form.submit();">
    <%
    Do While not rsCategoria.EOF 
    Response.Write "<option value=" & rsCategoria("IDCATEGORIA")
    if categoria<>"" then
      if Cint(categoria)=Cint(rsCategoria("IDCATEGORIA")) then
         Response.Write "selected"
      end if
    end if
    Response.Write ">" & rsCategoria("CATEGORIA") & "</option>"
    rsCategoria.Movenext
    Loop
    %>
    </select></td></tr>
    <tr> 
    <td>
    <select name="sottocategoria" id="sottocategoria">
    <%
    if categoria<>"" then
        Dim rsSottoCategoria
        Dim sql1
        sql1 = "SELECT * FROM SOTTOCATEGORIE WHERE IDCATEGORIA="&categoria
        Set rsSottoCategoria = Server.CreateObject("ADODB.Recordset")
        rsSottoCategoria.Open sql1, conn_soft
        
        Do While not rsSottoCategoria.EOF 
        Response.Write("<option value=" & rsSottoCategoria("IDSOTTOCATEGORIA") & ">" & rsSottoCategoria("SOTTOCATEGORIA") & "</option>")
        rsSottoCategoria.Movenext
        Loop
    else
    %>
    <option value="">seleziona prima una categoria...</option>
    <%
    end if
    %>
    </select>
    </td></tr>
    </table>
    </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.