Avatar billede microsoft Nybegynder
04. januar 2002 - 13:23 Der er 1 kommentar og
1 løsning

Problem med Menu/Løkke

Jeg har et problem med min menu, som oprettes vha. en database.

Menuen består i princippet af to menuer.
1. Hovedkategorier
2. Produktgrupper m. subs.

Lige når man går ind på siden kan man klikke på produktgrupper, hvor der så vises nogle undergrupper.

Problemet:
Hvis jeg så vælger en anden hovedkategori kan jeg ikke få vist mine undergrupper, når der klikkes på produktgrupper. - Den \"falder\" bare tilbage til min default produktgrupper.
- Hvordan undgår jeg det.

Menuen kan ses på følgende URL:
http://www.digitalweb.dk/shop/menu3.asp

Håber der er nogen der kan hjælpe med dette problem.

Kritik, forslag til scriptet er iøvrigt også velkommen.

For god ordens skyld, så er scriptet hér.

<% @LANGUAGE=\"VBSCRIPT\" %>
<%
Option Explicit
Response.Buffer = True
On Error Resume Next

\' Variabler erklæres (Explicit)
  Dim oConn, oRS, strSQL, KategoriMenu, strVisKategori, strVisDefault, strRequest, strKategori, oRS2, strSQL2, Produktgrupper, Producenter

\' Brugerdefinerede Variabler
  strVisKategori=Request.QueryString(\"Kategori\")
  strRequest=Request.QueryString(\"Produktgruppe\")
%>

<HTML>
<BODY>

<!--#include virtual=\"/shop/includes/dbconnopen.asp\"-->

<%
\' Disse menupunkter bliver oprettet fra en tabel, når jeg når dertil
Response.Write \"<table>\" & chr(13) & \"<tr><td>\" & chr(13)
Response.Write \"<a href=menu3.asp?Kategori=Hardware>Hardware</a><br>\"
Response.Write \"<a href=menu3.asp?Kategori=Software>Software</a><br>\"
Response.Write \"<a href=menu3.asp?Kategori=Netværk>Netværk</a><br>\"
Response.Write \"<a href=menu3.asp?Kategori=Mobiltelefoner>Mobiltelefoner</a><br><br>\"
Response.Write \"</td></tr>\" & chr(13) & \"</table>\" & chr(13) & chr(13)

\' #########################################################################
\' HÈR KAN SCRIPTET IKKE HUSKE KATEGORIEN VALGT I OVENSTÅENDE MENUPUNKTER,
\' NÅR DER TRYKKES PÅ PRODUKTGRUPPER FRA FUNKTIONEN \"MAKEKATEGORI\" HERUNDER.

If strVisKategori=\"\" Then
strVisDefault=\"Hardware\"
Response.Write MakeKategori(strVisDefault)
Else
Response.Write MakeKategori(strVisKategori)
End If

\' #########################################################################

oConn.Close
Set oConn = Nothing
%>
<%
Function MakeKategori(KategoriID)

\'Recordsæt fra database oprettes
Set oRS = Server.CreateObject(\"ADODB.Recordset\")

strSQL = \"SELECT Kategorinavn, HKategorinavn From Kategorier WHERE HKategorinavn=\'\" & KategoriID & \"\'\"

\' Ovenstående valgte Recordset åbnes
  oRS.Open strSQL, oConn

  Produktgrupper=Produktgrupper & \"<!-- Produktgrupper -->\" & chr(13)
  Produktgrupper=Produktgrupper & \"<table>\" & chr(13) & \"<tr><td>\" & chr(13)

  Do While Not oRS.EOF
 
    If strRequest=oRS(\"Kategorinavn\") Then
    Produktgrupper=Produktgrupper & \"<a href=menu2.asp?Produktgruppe=\" & oRS(\"Kategorinavn\") & \">\" & oRS(\"Kategorinavn\") & \"</a><br>\" & chr(13)
    strKategori=oRS(\"Kategorinavn\")
    Produktgrupper=Produktgrupper &  MakeProducent(strKategori)
    Else
    Produktgrupper=Produktgrupper & \"<a href=menu3.asp?Produktgruppe=\" & oRS(\"Kategorinavn\") & \">\" & oRS(\"Kategorinavn\") & \"</a><br>\" & chr(13)
    End If

    oRS.MoveNext
  Loop

  Produktgrupper=Produktgrupper & \"</td></tr>\" & chr(13) & \"</table>\" & chr(13) & chr(13)

  oRS.Close
  Set oRS = Nothing
\' oConn.Close
\' Set oConn = Nothing

  MakeKategori=Produktgrupper

End Function
%>

<%
Function MakeProducent(ParentID)

\' Recordsæt fra database oprettes
  Set oRS2 = Server.CreateObject(\"ADODB.Recordset\")

\' SQL forespørgsel laves
  strSQL2 = \"SELECT DISTINCT Producent,Kategorinavn From Produkter WHERE Kategorinavn=\'\" & ParentID & \"\'\"

\' Recordset til SQL forespørgsel åbnes
  oRS2.Open strSQL2, oConn

  Producenter=Producenter & \"<!-- Producenter-Start -->\" & chr(13)
\' Response.Write \"<table>\" & chr(13) & \"<tr><td>\" & chr(13)

\' Løkke laves for gennemløb i Recordsæt
  Do While Not oRS2.EOF
 
      Producenter=Producenter & \"    &nbsp;<a href=menu3.asp?Produktgruppe=\" & oRS(\"Kategorinavn\") & \"&Producent=\" & oRS2(\"Producent\") & \"><small>\" & oRS2(\"Producent\") & \"</small></a><br>\" & chr(13)

    oRS2.MoveNext
  Loop

  Producenter=Producenter & \"<!-- Producenter-Slut -->\" & chr(13)

\' Response.Write \"</td></tr>\" & chr(13) & \"</table>\" & chr(13) & chr(13)

\' Recordsæt lukkes
  oRS2.Close
  Set oRS2 = Nothing

\' Menuen samles og defineres
  MakeProducent=Producenter

End Function
%>

</BODY>
</HTML>
Avatar billede microsoft Nybegynder
04. januar 2002 - 14:58 #1
Er der ingen der kan se hvordan jeg kan få scriptet til at \"huske\" kategorien???
- Det er markeret i scriptet hvor problemet er?
Avatar billede microsoft Nybegynder
04. januar 2002 - 17:09 #2
Har selv fundet en løsning på problemet.
Jeg lukker.
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