09. marts 2004 - 10:34Der er
10 kommentarer og 1 løsning
Dynamisk menu!
Jeg er i gang med at lave en hjemmesiden hvor jeg skal bruge en dynamisk menu!
Jeg har en tabel som hedder kategorier og en tabel som hedder tekster. Det jeg gerne vil have er at når man klikker på en kategori vises alle tekster som er linket til denne, under denne kategori som nu er fed.
Tabellerne ser således ud i struktur:
Kategori
ID; overskrift
Tekster
ID; overskrift; beskrivelse; Knogle
De er sammensat af kategori ID og Knogle
Tabellen skal se nogenlunde således ud hvis ID 3 er valgt
set rs = conn.Execute("select * from Kategori") do while not rs.eof response.write rs("overskrift")&"<br>" set rs1 = conn.Execute("select * from Tekster where Knogle="& rs("id")) do while not rs1.eof response.write " "&rs1("overskrift")&"<br>" rs1.MoveNext loop rs.MoveNext loop
Tak for det hurtige svar, den lister den første kategori men den kommer dog med en fejl, hvilket jeg har markeret!
Microsoft JET Database Engine error '80040e07'
Data type mismatch in criteria expression.
/demo/menu/index.asp, line 17
<% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("menu.mdb") %> <% set rs = conn.Execute("select * from kategorier") do while not rs.eof response.write rs("overskrift")&"<br>" set rs1 = conn.Execute("select * from tekster where Knogle=" & rs("id")) ' her er fejlen do while not rs1.eof response.write " "&rs1("overskrift")&"<br>" rs1.MoveNext loop rs.MoveNext loop %>
nu virker det! tak, men er det muligt at teksterne kun vises når man klikker på en bestemt kategori, dvs. klikker man på kategori 2 bliver alle tekster dertil vist som ovenstående og de andre skjult??
du kan lave det i JavaScript, eller sende et openID med når du trykker på linket, som jeg lige har lavet i eks.
set rs = conn.Execute("select * from Kategori") do while not rs.eof response.write "<a href""minside.asp?operID="&rs("id")&""">"rs("overskrift")&"</a><br>" if request.querystring("openID") = rs("id")&"" then set rs1 = conn.Execute("select * from Tekster where Knogle="& rs("id")) do while not rs1.eof response.write " "&rs1("overskrift")&"<br>" rs1.MoveNext loop end if rs.MoveNext loop
Helt perfekt! tusinde tak! der var lige nogle små tastefejl så jeg smider lige den rettede kode til andre interesserede!
<% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("menu.mdb") %> <% set rs = conn.Execute("select * from Kategorier") do while not rs.eof response.write "<a href=""index.asp?openID=" & rs("id") & """>" & rs("overskrift") & "</a><br>" if request.querystring("openID") = rs("id")& "" then set rs1 = conn.Execute("select * from Tekster where Knogle="& rs("id")) do while not rs1.eof response.write " " & rs1("overskrift")&"<br>" rs1.MoveNext loop end if rs.MoveNext loop %>
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.