Avatar billede bobbedude Nybegynder
07. juli 2004 - 14:02 Der er 1 løsning

Uendelige kategorier

Se http://www.eksperten.dk/spm/388218

Jeg har brugt dette script, men har det problem at jeg gerne vil have bruge træet i en include menu (altså default.asp kalder sig selv igen men med default.asp?Kategori=4).

Det problem jeg så får er at når jeg har klikket på et menupunkt åbner træet og klapper sammen igen (ikke så smart)




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%
Const STR_DB = "data/shopping.mdb"
Const STR_TB = "VareKategori"

Sub writeElements(pid,level)
  Dim rs, rs2, intCount, strSql, boolHasChildren
  strSql = "SELECT * FROM " & STR_TB & " WHERE pid=" & pid
  Set rs = Conn.Execute(strSql)
  If Not rs.Eof Then
    Do While Not rs.Eof
        boolHasChildren = False
        strSql = "SELECT Count(*) AS intCount FROM " & STR_TB & " WHERE pid=" & rs("KategoriID")
        Set rs2 = Conn.Execute(strSql)
        If rs2("intCount") > 0 Then boolHasChildren = True
        rs2.Close
        Set rs2 = Nothing
        If boolHasChildren Then
          Response.Write "<a href=""test.asp?Kategori="&rs("KategoriID")&""" onclick=""toggleNode(" & rs("KategoriID") & ")"">" & rs("KategoriNavn") & "1</a><br>"
          Response.Write "<div id=""cont" & rs("KategoriID") & """ style=""margin-left:" & 15 * (level+1) & "px; display:none"">"
          WriteElements rs("KategoriID"), level + 1 'udskriv alle elementer under dette
          Response.Write "</div>"
        Else
          Response.Write "<a href=test.asp?Kategori="&rs("KategoriID")&">"& rs("KategoriNavn") & "</a><br>"
        End If
      rs.MoveNext
    Loop
  End If
  rs.Close
  Set rs = Nothing
End Sub
%>
<HTML>
<HEAD>
<TITLE>Tælletræ</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function toggleNode(intNd) {
    var srcElm = event.srcElement;
    var coll = document.getElementsByTagName('a');
    for (var i=0; i<coll.length;i++) {
        if (coll[i] == srcElm) srcElm.style.fontWeight = 'bold';
        else coll[i].style.fontWeight = 'normal';
        }
    var elm = document.getElementById('cont' + intNd);
    elm.style.display = (elm.style.display == 'none') ? 'block' : 'none';
}
</SCRIPT>
</HEAD>
<BODY>
<%
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(".") & "\" & STR_DB
writeElements 0,0
Conn.Close
Set Conn = Nothing
%>
</HTML>
Avatar billede bobbedude Nybegynder
08. juli 2004 - 07:46 #1
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester