Uendelige kategorier
Se http://www.eksperten.dk/spm/388218Jeg 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>
