---
title: "Undermeny"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/69764-undermeny/page2"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Gimbo"
published: "2003-03-01T16:05:31.000Z"
updated: "2003-03-05T09:34:37.000Z"
replies: 27
views: 599
page: 2
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/69764-undermeny"
---

# Undermeny

_Sida 2 av 2._

## #21 — Gimbo, 2003-03-04T10:24Z

Den där koden va lite skum, korrigerade den lite, men jag förstår inte hur den är tänkt att fungera, och vad datatyperna i access databasen ska se ut, just nu har jag det så här:

tblMenyer
intPK -Räknare 
intParentID -Tal
intMenuID - Tal
strNamn - Text
strLink - Text

har matat in testvärden i databasen men det fungerar inte så här ser koden ut:

```
<% '//Menyn med undermenyer

Conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("databasen.mdb") 
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open Conn

strSQL = "SELECT DISTINCT intMenuID, strNamn, strLink FROM tblMenyer WHERE intParentID = 0"
Set rsParent = connect.Execute (strSQL)

While Not rsParent.EOF
  Response.Write "<a href="" " &rsParent("strLink")& " & "&rsParent("strName")& " ""</a>"

  If Cint(Request.Querystring("id")) = Cint(rsParent("id")) Then
    strSQL = "SELECT intMenuID, strName, strLink FROM tblMenyer WHERE intParentID = " & intParentID & ";"
    Set rsChild = connect.Execute (strSQL)

    While Not rsChild.EOF
      Reponse.Write "<a href="" " &rsChild("strLink")& " & " &rsChild("strName")& " ""</a>"
    Wend
  End If
Wend
%>
```

får felmeddelandet:

```
Microsoft JET Database Engine (0x80040E10)
Det har inte angetts något värde för en eller flera nödvändiga parametrar.
```

men jag har värden i databasen

Permalänk: https://www.webforum.nu/p/967550

## #22 — Engine^, 2003-03-04T10:37Z

Har du satt alla toppmenyers intParentID till 0?

Sedan såg jag att jag gjort en tabbe också :)

```
strSQL = "SELECT intMenuID, strName, strLink FROM tblMenyer WHERE intParentID = " & [b]rsParent("intMenuID")[/b] & ";"
Set rsChild = connect.Execute (strSQL)
```

Permalänk: https://www.webforum.nu/p/967556

## #23 — Gimbo, 2003-03-04T11:02Z

fungerar fortfarande inte:

```
<% '//Menyn

Conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("databasen.mdb") 
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open Conn

strSQL = "SELECT * FROM tblMenyer WHERE intParentID = 0"
Set rsParent = connect.Execute(strSQL)

While Not rsParent.EOF
  Response.Write "<a href=""index.asp?id= " &rsParent("strLink")& " ""> " &rsParent("strName")& " </a>"

  If Cint(Request.Querystring("id")) = Cint(rsParent("id")) Then
    strSQL = "SELECT intMenuID, strName, strLink FROM tblMenyer WHERE intParentID = " & rsParent("intMenuID") & ";"
    Set rsChild = connect.Execute (strSQL)

    While Not rsChild.EOF
      Reponse.Write "<a href="" " &rsChild("strLink")& " "">  " &rsChild("strName")& " </a>"
    Wend
  End If
Wend

%>
```

pillade lite på response.write, jag tycker inte de ser så speciellt rätt ut, det ska ju se ut på följande sätt index.asp?IntParentId=0&intMenuId=1 eller ngt sånt

eller har jag fel?

Permalänk: https://www.webforum.nu/p/967571

## #24 — Engine^, 2003-03-04T12:03Z

Nja... det beror ju på hur du använder din Querystring. Det jag har föreslagit är egentligen bara en mall, som kräver en del ändringar för att du ska kunna använda den till ditt ändamål.

Huvudmeny1 'strLink = "index.asp?Id=1"
\-undermeny1.1 'strLink = "index.asp?Id=1?Page=undermeny1.1.asp"

Länkarna och hur du vill använda dom styr utseendet på din Querystring. Dvs. strLink består i det här exemplet av index.asp + querystring.

Permalänk: https://www.webforum.nu/p/967607

## #25 — Gimbo, 2003-03-04T12:15Z

ok, men om vi börjar om från början, och skippar det här med strLink, dvs så här vill jag att menyn ska vara uppbyggt, till höger visas adressen på querystringen. Där sida är en speciell sida med speciell innehålloch sektion är en koll som kollar om det finns en undermeny

Meny1  (index.asp?sida=1&sektion=1) \<--- visar undermeny ty sektion=1
\-meny1.1 (index.asp?sektion=1&pageID=1)
\-meny1.2 -meny1.1 (index.asp?sektion=1&pageID=2)
Meny2 (index.asp?sida=2&sektion=2)
..... innehåller ingen under rubirk exempelvis, men eftersom sida=2 ändras innehållet på sidan
Meny3 (index.asp?sida=1&sektion=3) \<--- visar innehållet av sida=1 fast har en undermeny ty sektion=3
\-meny3.1(index.asp?sektion=3&pageID=6) 

osv.

hoppas ni förstår vag jag menar??

Permalänk: https://www.webforum.nu/p/967620

## #26 — Engine^, 2003-03-04T12:43Z

tblMenyer
\------------
intPK \| intParentID \| intMenuID \| strName \| strLink
\---------------------------------------------------
1       \| 0                 \| 1               \| Meny1    \| sida=1&sektion=1
2       \| 0                 \| 2               \| Meny2    \| sida=2&sektion=2
3       \| 0                 \| 3               \| Meny3    \| sida=1&sektion=3
4       \| 1                 \| 1               \| Meny1.1 \| sektion=1&pageID=1
5       \| 1                 \| 2               \| Meny1.2 \| sektion=1&pageID=2
6       \| 3                 \| 1               \| Meny3.1 \| sektion=3&pageID=6
\---------------------------------------------------
intPK är förvisso onödig, eftersom en unik nyckel kan bildas genom en kombination av intParentID och intMenuID.

```
Dim strSQL, rsParent, rsChild, qryID

Set rsParent = Server.CreateObject("ADODB.RecordSet")
Set rsChild = Server.CreateObject("ADODB.RecordSet")

[blue]'Skapa menyer...[/blue]
strSQL = "SELECT intMenuID, strName, strLink FROM tblMenyer WHERE intParentID = 0;"
Set rsParent = connect.Execute (strSQL, , 1)

qryID = Request.QueryString("sektion")

While Not rsParent.EOF
  Response.Write "<a href=""index.asp?" & rsParent("strLink") & """>" & rsParent("strName") & "</a>"

  If qryID = rsParent("intMenuID") Then
    strSQL = "SELECT strName, strLink FROM tblMenyer WHERE intParentID = " & rsParent("intMenuID") & ";"
    Set rsChild = connect.Execute (strSQL, , 1)

    While Not rsChild.EOF
      Response.Write "-<a href=""index.asp?" & rsChild("strLink") & """>" & rsChild("strName") & "</a>"

      rsChild.MoveNext
    Wend
  End If

  rsParent.MoveNext
Wend

[blue]'Visa sidan... vet ej hur du har tänkt göra det
'men kanske något sånt här...[/blue]
If Not IsNull(Request.QueryString("sida")) Then
  Server.Execute("pages.asp?sida=" & Request.QueryString("sida"))
End If

If Not IsNull(Request.QueryString("pageID")) Then
  Server.Execute("pages.asp?pageID=" & Request.QueryString("pageID"))
End If
```

Fungerar inte det här, så får jag väl ge upp med att försöka få in dig på mitt spår ;)

Permalänk: https://www.webforum.nu/p/967640

## #27 — Gimbo, 2003-03-04T21:48Z

fick det inte att fungera, men tack för infot och tålamodet ändå :)

Permalänk: https://www.webforum.nu/p/968075

## #28 — Engine^, 2003-03-05T09:34Z

Det var så lite så :)

Jag hoppas bara att du förstog min ide, så kanske du kan ordna till koden så att det fungerar för dig.

Permalänk: https://www.webforum.nu/p/968315

---

Tråden på webben: https://www.webforum.nu/amne/asp/69764-undermeny/page2  
Föregående sida: https://www.webforum.nu/amne/asp/69764-undermeny.md
