Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di miki.
    Registrato dal
    Oct 2004
    Messaggi
    1,918

    Creare menu di cataloghi e sottocataloghi

    devo creare un catalogo che ha n sottocataloghi e ogni sottocatalogo può avere altri sottocataloghi

    tabella categoria = IDcategoria,nome,padre
    tabella articoli = IDarticolo,IDcategoria,nome

    prendo ID del catalogo dal URL, a questo punto faccio una select e guardo se questo catalogo ha sei sottocataloghi, se li ha (recordcount>0) allora pubblico tutti i sottocataloghi, se non li ha faccio una select nella tabella articoli con IDcatalogo

    Il problema è che io vorrei in alto un menu formato tipo questo

    catalogo>sottocatalogo>sottosottocatalogo

    a seconda di che punto mi trovo con la navigazione.
    Per fare una cosa del genere ho fatto così, ma credo che ci sian cose più funzionali.

    praticamente ho fatto un ciclo

    i=0
    Dim array_categoria(10)
    padre=100
    numero_categoria = Request.QueryString("IDcategoria")
    Do while padre <> 0
    Set menu = Server.CreateObject("ADODB.Recordset")

    sql = "SELECT * FROM categorie where IDcategoria=" &numero_categoria

    menu.Open sql, conn ,3,3

    padre=menu("padre")
    numero_categoria = menu("padre")
    response.Write(menu("nome"))
    i=i+1
    menu.Close
    set menu = Nothing
    loop

    E poi dall'array a ritroso mi faccio il menu. Solo che la vedo una cosa ingarbugliata. Sicuramente c'è un metodo per far prima, ma al momento non mi viene a mente.
    You cannot discover new oceans unless you have the courage to lose sight of the shore

    Caro Dio, quando nelle preghiere ti chiedevo di far morire quel pedofilo truccato, liftato,mentalmente disturbato e di colore indefinibile, non intendevo Michael Jackson.

  2. #2
    tabella
    campoID - contatore
    campoArticolo - testo
    campoIDPadre - numerico

    Agli articoli di primo livello dai zero come campoIDPadre.

    Alla pagina ASP passi l'ID dell'articolo selezionato.

    codice:
    <%
    function idParentPath(cn, valueID, byRef outArray)
    	if len(valueID) = 0 or not isNumeric(valueID) then valueID = 0
    	s = "SELECT * FROM tabella WHERE campoID = " & valueID
    	set r = cn.execute(s)
    		if not r.eof then
    		parentValueID = r("campoIDPadre")
    		outArray = outArray & parentValueID
    			if not parentValueID = 0 then
    			outArray = outArray & " "
    			idParentPath cn, parentValueID, outArray
    			end if
    		end if
    	r.close
    	set r = nothing
    end function
    
    ID = request.queryString("ID")
    if len(ID) > 0 and isNumeric(ID) then
    ID = cLng(ID)
    else
    ID = 0
    end if
    
    thisPage = request.serverVariables("PATH_INFO")
    
    set conn = ...
    conn.open ...
    %>
    <% if ID = 0 then %>
    &raquo; Root
    <% else %>
    &raquo; Homepage 
    <% end if %>
    <%
    idParentPath conn, ID, arrID
    
    if inStr(arrID," ") > 0 then
    arrID = split(arrID)
    end if
    
    if isArray(arrID) then	
    	for i = uBound(arrID) to lBound(arrID) step -1	
    		sql = "SELECT * FROM tabella WHERE campoID = " & arrID(i)
    		set rs = conn.execute(sql)
    			if not rs.eof then
    %>
    &raquo; <%=rs("campoArticolo")%> 
    <%
    			end if
    		rs.close
    		set rs = nothing
    	next
    end if
    
    if ID > 0 then		
    	sql = "SELECT * FROM tabella WHERE campoID = " & ID
    	set rs = conn.execute(sql)
    		if not rs.eof then
    %>
    &raquo; <%=rs("campoArticolo")%> 
    <%
    		end if
    	rs.close
    	set rs = nothing
    	
    end if
    %> 
    <%
    conn.close
    set conn = nothing
    %>

  3. #3
    Utente di HTML.it L'avatar di miki.
    Registrato dal
    Oct 2004
    Messaggi
    1,918
    ok grazie. Appena posso do un'occhiata allo script.

    La tabella è già fatta con la struttura detta da te (anche con il fatto dello zero), quindi credo che sarà facile adattare la funzione.
    You cannot discover new oceans unless you have the courage to lose sight of the shore

    Caro Dio, quando nelle preghiere ti chiedevo di far morire quel pedofilo truccato, liftato,mentalmente disturbato e di colore indefinibile, non intendevo Michael Jackson.

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.