Pagina 1 di 11 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 104
  1. #1
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692

    Liste automaticamente popolate

    Ciao devo realizzare una cosa del genere:
    da una listbox dinamica creata in asp:
    codice:
     <%
    sql = "SELECT campo FROM tabella GROUP BY campo"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, cn, 3, 3
    
    On Error Resume Next
    rs.MoveFirst  
    Do While Not rs.EOF%>
    
    <option value=<%=replace(rs("campo"), " ", "_")%>><%=rs("campo")%> </option>
    
    <%
    rs.MoveNext
    Loop
    rs.Close
    set rs = Nothing
    %>
                    <option value="TUTTI">TUTTI</option>
    
                  </select>
    devo fare in modo che in automatico si popoli una seconda listbox dinamica con dati riferiti a quanto selezionato nella prima listbox e poi eseguire una query; non riesco a fare il passaggio dalla prima alla seconda lista di nomi. :master:

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Fai una ricerca per OnChange. Devi unire asp e javascript.

    Roby

  3. #3
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Grazie, stavo provando questo ma restituisce:
    Microsoft VBScript runtime error '800a01c2'

    Wrong number of arguments or invalid property assignment: 'Crea_Listbox'

    codice:
    <%
    
    'Effettuo la connessione al database
    Connessione="DRIVER={Microsoft Access Driver (*.mdb)}; "
    Connessione=Connessione & "DBQ=" & server.mappath("up.mdb")
    
    SET Connection = server.createobject("adodb.connection")
    Connection.Open Connessione
    
    'Campo_Valore = il campo del database dal quale attingo il valore delle varie opzioni
    'Campo_Nome = il campo del database dal quale attingo il nome visualizzato delle varie opzioni
    'Tabella = nome della tabella del database su cui effettuare la query
    'nome_listbox = il nome che dovrà avere il listbox
    
    function Crea_Listbox(Nome, Professione, tabella, list)
      'Creo un listbox e lo nomino con il valore Nome_listbox passato alla funzione
      'Aggiungo inoltre il carattere di ritorno a capo per avere in output un html comprensibile
      Temp="<select name=""" & list & """>" & chr(10)
    
      'la riga sottostante crea la prima opzione vuota.
      'se non si desidera si può remmare o cancellare
      Temp=Temp & "<option value=""""></option>" & chr(10)
      
      'Creo la query in modo che prenda i campi che andranno a popolare il listbox
      'Il primo è il "campo_valore" ovvero il valore delle varie voci nella listbox
      'Il secondo invece è il "Campo_Nome", ovvero il testo visualizzato
      
      sql="select " & Nome & ", " & Professione & " from " & tabella
      set rs=connection.execute(sql)
      
      'Ciclo all'interno del recordset ottenuto e stampo l'html relativo alle singole voci del listbox
      do while not rs.eof
        Temp=Temp & "<option value=""" & RS(Nome) & """>" & RS(Professione) & "</option>" & chr(10)
        rs.movenext
      loop
      
      'Chiudo il recordset
      rs.close
      set rs=nothing
      
      'Chiudo l'html relativo al listbox
      Temp=Temp & "</select>"
    
      Crea_Listbox=Temp
    end function
    %>
    
    <table><tr><td>
    <%=Crea_Listbox("Nome", "Professione")%>
    </td></tr></table>
    
    <%
    connection.close
    set connection=nothing
    %>
    :master:

  4. #4
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Grazie alla ricerca ho personalizzato questo code:
    codice:
    sql = "select ID, nome, cognome from tabella GROUP BY cognome, ID, nome"
    
    set rs = conn.execute(sql)
    
    if not rs.eof then
    %>
    <select name="nome" id="nome" onChange="jumpMenu('parent',this,0)">
    <option value="<%=pagina%>?id="></option>
    <% do until rs.eof %>
    <option value="<%=pagina%>?id=<%=rs("ID")%>"<% if rs("ID") = id then %> selected<% end if %>><%=rs("cognome")%></option>
    <% 
    rs.movenext
    loop 
    end if
    %>
    </select>
    
    
    
    
    <%
    rs.close
    set rs = nothing
    
    if id > 0 then
    
    sql = "select nome, ID from tabella where ID = " & ID & " group by nome, ID"
    
    set rs = conn.execute(sql)
    
    if not rs.eof then
    %>
    <select name="cp" id="cp">
    <option value="<%=rs("ID")%>"></option>
    <% do until rs.eof %>
    <option value="<%=rs("ID")%>"><%=rs("nome")%></option>
    ma funziona male perchè non raggruppa i cognomi...

  5. #5
    Io non penso che tu possa dare più di un campo in base al quale raggruppare, dal punto di vista logico non va bene..........scegline uno.......
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  6. #6
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Originariamente inviato da teorema55
    Io non penso che tu possa dare più di un campo in base al quale raggruppare, dal punto di vista logico non va bene..........scegline uno.......
    si in effetti ho rivisto le cose e scrivo così:
    codice:
    <% 
    pagina = request.servervariables("path_info") 
    ID_CAT = request.querystring("ID_CAT") 
    
    if len(ID_CAT) > 0 and isnumeric(ID_CAT) then 
    id = clng(ID_CAT) 
    else 
    id = 0 
    end if 
    
    set conn = server.createobject("adodb.connection") 
    conn.open "DRIVER={Microsoft Access Driver (*.mdb)};" &_ 
    "DBQ="& Server.MapPath("up.mdb") 
    
    sql = "select * from CAT order by CAT" 
    
    set rs = conn.execute(sql) 
    
    if not rs.eof then 
    %>
    <select name="tabella1" onChange="jumpMenu('parent',this,0)"> 
    <option value="<%=pagina%>?id_cat=0">Selezionare CAT</option> 
    <% do until rs.eof %> 
    <option value="<%=pagina%>?id_cat=<%=rs("ID_CAT")%>"<% if rs("ID_CAT") = id_cat then %> selected<% end if %>><%=rs("CAT")%></option> 
    <% 
    rs.movenext 
    loop 
    end if 
    %> 
    </select></font><p style="margin-top: 0; margin-bottom: 0" align="left"> 
    <font size="2" face="Verdana"> 
    <% 
    rs.close 
    set rs = nothing 
    
    if ID_CAT > 0 then 
    
    sql = "select nome, ID, UOAT from tabella where ID_CAT = " & ID_CAT & " group by nome, ID, UOAT"
    
    set rs = conn.execute(sql) 
    
    'do while not rs.eof
    if not rs.eof then
    %>
    
    
    
    <select name="cp" id="cp">
    <option value="<%=rs("nome")%>"></option>
    <% do until rs.eof %>
    <option value="<%=rs("UOAT")%>"><%=rs("UOAT")%></option> 
    </font> 
    
    <div align="left">
      <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" id="AutoNumber1">
        <tr>
          <td align="left"></td><td align="left"></td></tr><tr><td align="left"></td><td align="left"><p align="left"><font face="Verdana" style="font-size: 9pt">"><%=rs("nome")%></font></td>
        </tr>
        <tr>
          <td align="left"></td><td align="left"></td></tr></table></div><div align="left"><%
    rs.movenext
    loop
    
    end if
    
    rs.close 
    set rs = nothing 
    
    end if
    
    conn.close 
    set conn = nothing 
    
    %>
    </div>
    </select></p>
    </p> 
    </form>
    ma funziona male...
    il problema è che vorrei che una volta selezionato dalla prima listbox il CAT, la seconda listbox si popolasse automaticamente di UOAT relativi a quel CAT e poi selezionando dalla seconda listbox un valore UOAT si stampassero a video tutti i nomi appartenenti a quella UOAT. mi spiego?

  7. #7
    Ho avuto a che fare diverse volte con le select dinamiche, mi spieghi esattamente cosa vuoi fare? Popolare la seconda in base all'ID scelto nella prima? Ho capito bene?
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  8. #8
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Originariamente inviato da teorema55
    Ho avuto a che fare diverse volte con le select dinamiche, mi spieghi esattamente cosa vuoi fare? Popolare la seconda in base all'ID scelto nella prima? Ho capito bene?
    Scusa per la confusione...
    allora ho una prima tbl nel dbase chiamata CAT con i campi:
    ID_CAT e CAT
    selezionando dalla listbox un valore CAT per esempio 'scrittori' si deve popolare la 2a listbox con la UOAT di appartenza di quegli scrittori (i dati vengono presi da una 2a tabella chiamata UOAT) ; infine selezionando il nome dello scrittore devono stamparsi a video tutte le sue opere (sempre prese dalla tabella UOAT)...mi spiego?

  9. #9
    Sì, ti spieghi. Non c'è un modo solo per realizzare questa funzionalità, ti posso accompagnare nel modo che uso io:

    1. realizzi la 1^ list box normalmente (mi sembra che la tua vada bene, solo non mi convince questo:

    <option value="<%=pagina%>?id_cat=<%=rs("ID_CAT")%>"<% if rs("ID_CAT") = id_cat then %> selected<% end if %>><%=rs("CAT")%></option>
    non ti conviene semplicemente mettere l'attributo "selected" qui:

    <option value="<%=pagina%>?id_cat=0" selected>Selezionare CAT</option>
    ?

    Dammi un riscontro che poi andiamo avanti..............
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  10. #10
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    grazie.
    allora la prima listbox la realizzo così prendendo i dati dalla tbl CAT del dbase:
    codice:
    <select name="tabella1" onChange="jumpMenu('parent',this,0)"> 
    <option value="<%=pagina%>?id_cat=0">Selezionare CAT</option> 
    <% do until rs.eof %> 
    <option value="<%=pagina%>?id_cat=<%=rs("ID_CAT")%>"<% if rs("ID_CAT") = id_cat then %> selected<% end if %>><%=rs("CAT")%></option> 
    <% 
    rs.movenext 
    loop 
    end if 
    %> 
    </select>
    e poi?

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.