Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Sistema gerarchico per menu

    Sto cercando di creare un sistema di Menu che sia il più versatile possibile

    Ho la tabella: TbMenu

    IdMenu (PK int)
    IdPagina (int)
    LivelloMenu (int)
    Parent (int)
    Ordine (int)


    Ai vari menu sono associate le pagine (prese da una tabella apposita).

    Ora il mio problema è che voglio creare un sistema gerarchico con pagine e menu.

    In pratica la index.asp sarà la Root, poi sotto ci saranno i menu con LivelloMenu = 1, e ancora sotto i menu con LivelloMenu = 2.... e così via.


    Ora vi chiedo.
    Secondo voi come dovrei strutturare l'albero?

    Il parent è l'attributo che indica l'elemento superiore.

    Secondo voi è meglio impostare il parent:

    - Nei menu, inserendoci il menu superiore (se si tratta della Index sarà null o zero)
    - Nei menu, inserendoci l'ID della pagina superiore
    - Nelle pagine, inserendoci l'ID della pagina superiore

    ?
    Come credete sia meglio?
    Anche perchè ci sono delle eccezioni, tipo pagine che possono non fare parte della struttura (nessun parent)-

    Mi date un'opinione?

    Thanks

  2. #2
    se vuoi ho uno script già fatto che ti crea una struttura ad albero.....leggendo da un db.....

  3. #3
    Non sarebbe male per prendervi ispirazione
    Grazie

  4. #4
    Naturalmente devi fare tutte le variazioni del caso....a me è servito per la visualizzazione delle risposte di un forum......ora fai un pò tu......
    codice:
    Sub VisualizzaCategorie(id,idPadre,livello,root,qui)
    	dim rs,rsx,sep,i
    	sep = ""
    	connessione cnroot,rsroot
    	sqlroot="SELECT * FROM forum WHERE id=" & id
    	querydb sqlroot,cnroot,rsroot
    	if root=true then%>
    	+<%=rsroot("oggetto")%>
    
    	<%
    		'response.write rsroot("oggetto")&"
    "
    	end if
    	for i=1 to livello
    		sep = ""&sep & "&raquo;"
    	next
    	connessione cn,rs
    	'set rs = server.CreateObject("ADODB.Recordset")
    	sql="SELECT * FROM forum WHERE id_Padre=" & idPadre & " ORDER BY id "
    	querydb sql,cn,rs
    	if not rs.EOF then
    		do while not rs.EOF
    			sql_pers="select id,nick,sesso from users where id="&rs("id_mittente")
    			connessione cn_pers,rs_pers
    			querydb sql_pers,cn_pers,rs_pers
    			if rs_pers("sesso")="M" then
    				classe="uomo"
    				titolo="titleu"
    			else
    				classe="donna"
    				titolo="titled"
    			end if
    		if cint(qui)<>cint(rs("id")) then
    		%>
    		&id_padre=<%=id_padre%>"><%=sep&rs("oggetto")%>(<a class="<%=classe%>" href="../vedi_pag.asp?id=<%=rs_pers("id")%>"><%=rs_pers("nick")%></a>)</span>
    
    		<%
    		else
    		%>
    		&id_padre=<%=id_padre%>"><%=sep&rs("oggetto")%>(<a class="<%=classe%>" href="../vedi_pag.asp?id=<%=rs_pers("id")%>"><%=rs_pers("nick")%></a>)<span class="text_for">&laquo;--Sei qui</span>
    
    		<%end if
    			connessione cn2,rs2
    			sql2="SELECT * FROM forum WHERE id_Padre=" & rs("id")
    			querydb sql2,cn2,rsx
    			if not rsx.EOF then
    				VisualizzaCategorie rs.fields("id").value,rs.fields("id").value,(livello+1),false,qui
    			end if
    			rsx.Close
    			rs.MoveNext
    		loop
    	end if
    '	cn.close
    	'cn2.close
    	'cn_pers.close
    	'cnroot.close	
    End Sub

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.