Avatar billede godtnok Nybegynder
02. juni 2001 - 21:25 Der er 22 kommentarer og
1 løsning

Hjælp til drop down menu i ASP/DHTML

Hejsa,

jeg sidder og forsøger på at lave en pæn menu til min side.

Menuen skal laves ud fra denne tabel:
id, titel, parentid

Resultatet skulle gerne denne menu:
http://www.ruleweb.com/dhtml/Collapsing_Menus/Collapsing%20Menus.html

Men jeg har problemer med at få inddelingerne til at virke, så hovedkategorier og underkategorierne bliver vist korrekt.

Håber i kan hjælpe.

På forhånd tak.

Avatar billede jonaskn Nybegynder
02. juni 2001 - 21:33 #1
Mener du sådan en her?:
www.friserverplads.dk/klatten
Avatar billede godtnok Nybegynder
02. juni 2001 - 21:41 #2
ja, det gør jeg næsten.

Det jeg ønsker er følgende output:

hovedkategori 1
  underkategori til hovedkategori 1
    underkategori
hovekategori
  underkategori
  underkategori 3

osv....
Avatar billede jonaskn Nybegynder
02. juni 2001 - 21:43 #3
når, okey.
det kan jeg nok ikke finde ud af :-(
Avatar billede sth Novice
02. juni 2001 - 23:21 #4

hvad med denne:

<html>
<head>
    <title>Hallundbæk</title>
<meta HTTP-EQUIV=\"Refresh\" CONTENT=\"60 ;URL=menu.asp\">
<style type=\"text/css\">
<!--
A { text-decoration: none }
A { color: #FFCC00; font-family: Arial; font-size: 13px; }
A:hover    { text-decoration: nounderline }
A:hover { color: #FFFFFF }-->
</style>
<body bgcolor=\"#42495A\" text=\"#FFCC00\" link=\"#C0C0C0\" vlink=\"#C0C0C0\" alink=\"#C0C0C0\">
        &nbsp;</font>
    <font color=\"#FFCC00\">
            <CENTER><H2>Hovedmenu</H2></CENTER>           

  <%
Session.LCID = 1030

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"privat_db.mdb\")
SQLstmt = \"SELECT * FROM menu ;\"
Conn.Execute (SQLstmt)
Set rs = conn.Execute(SQLstmt)
  DO WHILE NOT rs.EOF
  id = rs(\"id\")
    kategoriNavn = rs(\"kategoriNavn\")

    %>
<tr height=\"20\">
<a href=\"menu.asp?kat=<%=id%>\"><%=kategoriNavn%></a></font></b></td>
<td>
<BR>
<%
kat =Request(\"kat\")
%>

<%

if Clng(kat) = Clng(id) then
SQL = \"SELECT * FROM submenu WHERE KategoriID = \" & Request(\"kat\")



Conn.Execute (SQL)

Set rs2 = conn.Execute(SQL)
 
  DO WHILE NOT rs2.EOF
navn= rs2(\"Navn\")
url=rs2(\"url\")
Response.Write \"&nbsp;&nbsp;&nbsp;\"
%>

<a href=\"<%=url%>\" target=\"basefrm\"><%=navn%></a></font></b>

<BR>

<%
rs2.MoveNext
LOOP
end if

kat = \"\"
    rs.MoveNext
  LOOP
  RS.Close
  Response.Write \"</TABLE>\"
  %>
<BR>
<%
conn.Close
Set conn = nothing
Set SQLstmt = nothing
    %>


   
Avatar billede sth Novice
02. juni 2001 - 23:26 #5
Databasen heder \"privat_db.mdb\"
og har 2 tabeller:
taben 1 heder \"menu\" denne indeholder følgende felter:
kategoriNavn som er af typen \"tekst\"
ID som af er typen \"autonummerering\"

taben 2 heder \"submenu\" denne indeholder følgende felter:
id som er af typen \"autonummerering\"
Navn som er af typen \"tekst\"
KategoriID som er af typen \"tal\"
url som er af typen \"tekst\"

Avatar billede sth Novice
02. juni 2001 - 23:26 #6
taben = tabel :)
Avatar billede sth Novice
02. juni 2001 - 23:30 #7
hvis du har en mailadresse kan jeg maile det til dig
Avatar billede godtnok Nybegynder
02. juni 2001 - 23:32 #8
jpt@bomark.dk

jeg kigger lige på det.
Avatar billede sth Novice
03. juni 2001 - 00:05 #9
så er den sendt

sth
Avatar billede godtnok Nybegynder
03. juni 2001 - 00:16 #10
Tak for det tilsendte STH, desværre kan jeg ikke bruge løsningen. Det skal kunne lade sige gøre fra en tabel.
Avatar billede sth Novice
03. juni 2001 - 00:18 #11
ok men det er jeg ikke sikker på er en nem sag, men hvorfor ikke bruge flere tabeller, det er da den mest logiske løsning ?
Avatar billede sth Novice
03. juni 2001 - 00:21 #12
Er der andre der har en løsning med én tabel, for så vil jeg da MEGET gerne se den ?
Avatar billede godtnok Nybegynder
03. juni 2001 - 00:39 #13
Her er den så:

Måske ikke den smarteste, men det virker :-)

  Set KategoriRS = Server.CreateObject(\"AdOdB.Recordset\")
  Sql = \"Select * from t_cat where cattype=1 order by Titel asc;\"
  KategoriRS.Open Sql, Conn, 1
 
  intAntalRows = KategoriRs.recordcount
  dim arr_Kategorier
  Redim arr_Kategorier(intAntalRows, 1)

  For i = 0 to intAntalRows - 1
    If Clng(KategoriRS(\"ParentId\")) <> 0 then
      strEndCat = KategoriRS(\"Titel\")
      KatValue  = KategoriRS(\"id\")
      KatId = Clng(KategoriRS(\"ParentId\"))
      do until KatId = 0
        Set SubCatRS = Server.CreateObject(\"ADODB.Recordset\")
        Sql = \"Select * from t_cat where id=\" & KatId
        Set SubCatRS = Conn.Execute(Sql)
        strSubCat = SubCatRS(\"Titel\") & \" : \" & strSubCat
        KatId = Clng(SubCatRS(\"Parentid\"))
      Loop
      arr_Kategorier(i, 0) = KatValue
      arr_Kategorier(i, 1) = strSubCat & strEndcat
      strSubCat = \"\"
    else
      arr_Kategorier(i,0) = KategoriRS(\"id\")
      arr_Kategorier(i,1) = KategoriRS(\"Titel\")
    End If
    KategoriRS.movenext
  next
  call dualSorter(arr_Kategorier, 1)
  For i = LBound(arr_Kategorier)+1 to UBound(arr_Kategorier)
    \'Response.Write arr_Kategorier(i, 0) & \" : \" & arr_Kategorier(i, 1) & \"<br>\" & chr(10)
    arrCatTitle = Split(arr_Kategorier(i,1), \":\")
    for count = 0 to Ubound(arrCatTitle)
      if count < Ubound(arrCatTitle) then
        spacer = spacer & \"&nbsp;&nbsp;\"
      else
        Response.Write spacer & arrCatTitle(count) & \"<br>\"
        spacer = \"\"
      End if
    next
  next
Avatar billede godtnok Nybegynder
03. juni 2001 - 00:40 #14
jatak
Avatar billede godtnok Nybegynder
03. juni 2001 - 00:45 #15
Funktionen dualsorter kan hentes hos 4guysfrom et eller andet!
Avatar billede erikjacobsen Ekspert
03. juni 2001 - 10:21 #16
For nu at fortsætte her, godtnok, i stedet for at invadere et uskyldigt spørgsmål:
er der vilkårligt mange underkategorier, eller kun 1 pr. hovedkategori?

Dyr
- aber
- elefanter
- husstøvmider
Planter
- brændenælde
- oggenokker
- græs
Biler
- Volvo
- Skrot
- Ford

Sådan noget i den retning?
Avatar billede godtnok Nybegynder
03. juni 2001 - 10:31 #17
Der kan godt være underkategorier til underkategorierne.

f.eks.
Dyr
- aber
- elefanter
  - løver
  - ørn
    - mus
- husstøvmider
Planter
- brændenælde
- oggenokker
- græs
Biler
- Volvo
- Skrot
- Ford
Avatar billede godtnok Nybegynder
03. juni 2001 - 10:32 #18
og så skal jeg til sidst have det til at fungere sammen med denne her:
http://www.ruleweb.com/dhtml/Collapsing_Menus/Collapsing Menus.html
Avatar billede erikjacobsen Ekspert
03. juni 2001 - 11:00 #19
Mus kan ikke være en underkategori til en ørn, som ikke kan til en elefant...
Men, ok, det er et eksempel.....:)  Javel, det tager jo mere end 5 minutter, så
jeg ved snart ikke .....
Avatar billede godtnok Nybegynder
03. juni 2001 - 11:03 #20
vil du hellere have 1000 points?
Avatar billede godtnok Nybegynder
03. juni 2001 - 11:53 #21
Erik, bare lad være med at kigge på det.

Laver det bare på en anden måde.
Avatar billede erikjacobsen Ekspert
03. juni 2001 - 13:58 #22
Nej, hvad I alverden er det nu man kan bruge de point til? Ingenting, vel?

Du er ikke interesseret. Ok.
Avatar billede perla Nybegynder
12. juni 2001 - 01:51 #23
Har en jeg lavede til en anden. Godt nok indsat i en dropdown box, men det kan jo ændres. Baseret på en tabel og med parentid ..

<%
    Set Conn = Server.CreateObject(\"ADODB.Connection\")
    Conn.Open \"Driver={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"database.mdb\")
    strSQL = \"SELECT * FROM soegkate ORDER BY Transfer ASC, id\"
    set RS = conn.execute( strSQL )
    Value=\"999\"
    Response.write \"<select name=\'kat\'>\"
    Response.write \"<option selected> </option>\"
    do while not rs.eof
      Response.write Value & RS(\"Transfer\")
      if Value=RS(\"transfer\") Then
        Fyld=\"-\"
      Else
        Fyld=\"\"
      End If
      Response.write \"<option value=\" & RS(\"id\") & \">\" & Fyld & rs(\"Navn\") & \"</option>\"
      Value=Rs(\"transfer\")
      rs.movenext
    loop

%>

-Per

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