Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    708

    Menu dinamico orizzontale con tendina verticale

    Ciao

    sto modificando un menù orizzontale jquery con tendine verticali cioè questo:

    http://www.dynamicdrive.com/style/cs...el_css_menu_2/

    trasformandolo in dinamico.

    Ho creato 2 tabelle

    - TabMenuVoce
    - TabMenuVoceSub

    relazionandole tramite l'ID_VOCE:

    Sono riuscito ad estrarre le VOCI e quindi a completare la parte orizzontale, ma non riesco ad visualizzare le VOCI SUB sotto ogni VOCE, per usare l'es. delle categorie non riesco a visualizzare le CATEGORIE sotto ogni SUPER CATEGORIA.

    Il codice è questo:


    codice:
    Dim rs_voce
    sql_voce = "SELECT * FROM TabMenuVoce ORDER BY PRIORITA ASC, VOCE ASC"
    
    Dim rs_voce_sub
    sql_voce_sub = "SELECT * FROM TabMenuVoceSub ORDER BY PRIORITA ASC, VOCE_SUB ASC"
    l'html è

    codice:
    <div id="myslidemenu" class="jqueryslidemenu">
    <ul>
    <%
    	'Se il recordset NON è (end of file) alla fine del file, allora: 
    	While Not rs_voce.eof
    %>  
    <%'INIZIO VOCE%>[*]<a href="#"><%=rs_voce("VOCE")%>
    </a>
      <ul>
    	<% ' IMPOSTO A 0 IL CONTATORE
        contatore = 0 %>
    	<%
    		'Se il recordset NON è (end of file) alla fine del file, allora: 
    		While Not rs_voce_sub.eof
    	%>
        <% If contatore = 5 Then
                contatore = 0 %>
      	<%'INIZIO VOCE SUB%>[*]<%=rs_voce_sub("VOCE_SUB")%><%'FINE VOCE SUB%>
        <% End If %>
      	<%
    		'Vai al prossimo
    		rs_voce_sub.MoveNext
    		' INCREMENTO IL VALORE DEL CONTATORE
            contatore = contatore + 1
    		Wend
    	%>[/list]
    
    <%'FINE VOCE%>
    <%
    	'Vai al prossimo
    	rs_voce.MoveNext
    	Wend
    %>[/list]
    <br style="clear: left" />
    </div>
    dove sbaglio?...mi manca del codice?

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non vedo dove apri i recordset...
    E comunque rs_voce_sub deve essere aperto dentro al ciclo del primo recordset in base al valore della voce estratta.

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    708
    Ciao Roby

    il primo problema l'ho risolto...non ho messo il secondo recordset dentro il primo ciclo.

    Ora vedo correttamente tutte le voci orizzontali del menu ed riesco ad estrarre correttamente da ogni VOCE, S O L O due voci di sottomenu... ma ce ne sono altre!

    Il codice della mia pagina è questo:

    codice:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    
    <%'VOCE
    'Dichiaro il recordset
    Dim rs_voce
    'Creo il recordset
    Set rs_voce = Server.CreateObject("ADODB.Recordset")
    'Dichiaro la stringa Sql
    Dim sql_voce
    
    Dim voce_in_menu_v 'Visualizzo o meno la voce nel menù
    voce_in_menu_v = "True"
    
    sql_voce = "SELECT * FROM TabMenuVoce WHERE VOCE_IN_MENU = "& voce_in_menu_v &" ORDER BY PRIORITA ASC, VOCE ASC"  
    'Apro il recordset, eseguo la stringa Sql e su quale db eseguirla
    rs_voce.Open sql_voce, cn, 1
    %>
    
    <html>
    <head>
    .....
    </head>
    
    <body>
    <div id="myslidemenu" class="jqueryslidemenu">
    <ul>
    <%
    	'Se il recordset NON è (end of file) alla fine del file, allora: 
    	While Not rs_voce.eof
    %>
    <%	
    	Dim id_voce_v
    	id_voce_v = rs_voce("ID_VOCE")
    %>  
    <%'INIZIO VOCE%>[*]<a href="<%=id_voce_v%>" onblur=""><%=rs_voce("VOCE")%>
    </a>
      <ul>
      <% contatore = 0 'IMPOSTO A 0 IL CONTATORE %>
    	
    	<%'VOCE_SUB
    	Dim voce_sub_in_menu_v
    	voce_sub_in_menu_v = "True"
    
    	'Dichiaro il recordset
    	Dim rs_voce_sub
    	'Creo il recordset
    	Set rs_voce_sub = Server.CreateObject("ADODB.Recordset")
    	'Dichiaro la stringa Sql
    	Dim sql_voce_sub
    
    	sql_voce_sub = "SELECT * FROM TabMenuVoceSub WHERE ID_VOCE = "& id_voce_v &" and VOCE_SUB_IN_MENU = "& voce_sub_in_menu_v &"  ORDER BY PRIORITA ASC, VOCE_SUB ASC"
    
    	'Apro il recordset, eseguo la stringa Sql e su quale db eseguirla
    	rs_voce_sub.Open sql_voce_sub, cn, 1
    	%>
    
    	<%
    		'Se il recordset NON è (end of file) alla fine del file, allora: 
    		While Not rs_voce_sub.eof
    	%>
        <% If contatore = 5 Then
    	   contatore = 0
        %>
      	<%'INIZIO VOCE SUB%>[*]<%=rs_voce_sub("VOCE_SUB")%><%'FINE VOCE SUB%>
        <% End If %>
    
      	<%
    		'Vai al prossimo
    		rs_voce_sub.MoveNext
    		' INCREMENTO IL VALORE DEL CONTATORE
            contatore = contatore + 1
    		Wend
    	%>[/list]
    
    <%'FINE VOCE%>
    <%
    	'Vai al prossimo
    	rs_voce.MoveNext
    	Wend
    %>
    
    [/list]
    <br style="clear: left" />
    </div>
    </body>
    </html>
    
    <%
    'Chiudo il recordset
    rs_voce_sub.Close
    Set rs_voce_sub = Nothing
    %>
    <%
    'Chiudo il recordset
    rs_voce.Close
    Set rs_voce = Nothing
    %>
    <%
    'Chiudo la connessione
    cn.Close 
    Set cn = Nothing
    %>

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    fatti stampare questa query "sql_voce_sub" così vedi meglio.

    Le Dim non vanno dichiarate dentro al ciclo ma fuori altrimenti ridimensioni inutilmente ad ogni ciclo.

    Roby

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    708
    Ok la dichiarazione delle dim non la sapevo.

    Ho fatto stampare :

    sql_voce_sub:

    codice:
    SELECT * FROM TabMenuVoceSub WHERE ID_VOCE = 5 and VOCE_SUB_IN_MENU = True ORDER BY PRIORITA ASC, VOCE_SUB ASC
    e vedo che le 2 variabili :

    codice:
    "& id_voce_v &" 
    
    "& voce_sub_in_menu_v &"
    vengono valorizzate, sono queste le variabili che intendevi?

    Per favore puoi dirmi quale dim dichiaro nel posto sbagliato?

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ma la query e' giusta? Riporta i valori che ti aspetti?

    Roby

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    708
    Ciao Roby

    il codice funziona utilizzavo male il contatore o meglio nel mio caso non serviva prorprio. Infatti invece del contatore utilizzo voce_in_menu e voce_sunb_in_menu per visualizzare quali voci del menù visualizzare.

    Pier

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.