---
title: "Skriv ut under-menyer..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/82963-skriv-ut-under-menyer/page2"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "voigtann1"
published: "2003-07-29T07:32:05.000Z"
updated: "2003-08-13T10:05:44.000Z"
replies: 60
views: 1129
page: 2
pages: 4
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/82963-skriv-ut-under-menyer"
---

# Skriv ut under-menyer...

_Sida 2 av 4._

## #21 — voigtann1, 2003-08-11T17:18Z

ah.. jag sitter fast i tänkandet... även om jag kör en kontroll med ID = link så kommer den aldrig att skriva ut under-under rubriken... \*pust\*

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

## #22 — Macce, 2003-08-11T18:47Z

Med min kod får du med alla under-under rubriker i en sql-fråga.
 Jag föreslår att du kikar vidare på den trots allt...

genom att använda ett orderid-fält kan du ju dessutom ändra ordningen på länkarna i en under-undermeny osv.

Det blir dessutom lätt att administrera grupper och träd då du bara anger en förälder id på en länk och resterande underliggande träd hänger med i flytten.

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

## #23 — voigtann1, 2003-08-11T18:50Z

Dina koder är lite... "dåligt" förklarat tycker jag... jag vill ju visa alla rubriker i en select box... testade din då kan jag bara visa visa menyer per gång.. detta är nog rätt lätt att fixa.

red. Ska kolla igenom dina koder igen... förstår inte alla saker såsom arrey,unbound etc etc (aldrig lärt mig)

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

## #24 — Macce, 2003-08-11T21:08Z

jag kanske skulle kunna kommenterat mer, men hur ubound och array osv. fungerar måste du nog lära dig på annat sätt (läs: Wf)

Om du vill visa alla rubriker så kolla villkoret "IF intIndent=0 then " är den sann så visas en rubrik annars visas en underlänk.

ELLER

annars kan du ju ändra Sql-frågan så den bara hämtar de "föräldrar" du vill. 

i exemplet så skriv så här:

```
GetRows("SELECT page_id,parent_page_id,linktext FROM tbl_links Where parent_page_id=1 ORDER BY orderid ")
```

då får du bara med de översta kategorierna...

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

## #25 — voigtann1, 2003-08-12T06:41Z

vad gör rs.getrows() det är ju inte din funktion :e

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

## #26 — voigtann1, 2003-08-12T07:55Z

Provade köra din kod med min databas.. då skrevs inte menyn ut i huvudtaget... vill helst ha något script som ingen har redan kodat(har svårt att tänka hur andra tänker). Jag tänkte prova med en arrey och databasen på något sätt bör ju detta fungera eller?

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

## #27 — Macce, 2003-08-12T09:25Z

> vad gör rs.getrows() det är ju inte din funktion

 

fyller en array med data !

arrLinks = GetRows("SELECT.......")

fyller arrLinks med en matris motsvarande sql-satsen...

anledningen till att din meny inte syns kan vara att du inte satt "parent_page_id" till "1" på dina kategorier

det är den älsta "föräldern" och måste anges för att underliggande "barn" och "barnbarn" osv. ska synas

som du ser har jag angett min älsta överst i skriptet 

```
intGrpId=1
```

mvh

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

## #28 — voigtann1, 2003-08-12T09:28Z

... känns som vi inte kommer någonvart jag kör denna kod på huvudsidan (gillar resultatet):

```
<a href=""><strong>Menu</strong></a><br>
<%
dim c, url, recset, namn, m_url, namn2, id, page
c = request.querystring("topic")
if c = "" then
  C = 0
end if

if c <> 0 then
  SQL = "SELECT namn,LINK,ID FROM MENU where ID = "&c &" order by namn"
  set recset = databas.execute(SQL)
  if recset.eof then
    namn = "error"
  else
    namn2 = recset("namn")
    link = recset("link")
    if link = 0 then
    namn = "<a href="""">Up one level</a><br>» "& namn2&""
    else
    namn = "<a href=""?topic="& link &""">Up one level</a><br>» "& namn2&""
    end if
    response.write "<b>"&namn&"</b><br>"
  end if
  recset.close : set recset = nothing
end if

SQL = "SELECT * FROM menu where link = "& c &" order by namn"
Set recset = Databas.Execute(SQL)

if recset.EOF then
else
  Do Until recset.EOF
  m_url = recset("url")
  if m_url <> "" then
    page = "<a href='"& m_url &"' target='_blank'>"& recset("namn")&"</a>"
  else
    page = "<a href=""?topic="& recset("id")&""">"& recset("namn")&"</a>"
  end if
    response.write "      &nbsp; » " &page& "<br>"    
  recset.MoveNext
  Loop
end if
recset.Close : set recset = nothing
%>
```

men på admin sidan vill jag ha som en selectbox som visar alla underrubriker... jag kan inte se hur din meny kommer att hjälpa det jag söker..

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

## #29 — Macce, 2003-08-12T09:53Z

ok, då har du alltså inga under-under rubriker ?

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

## #30 — voigtann1, 2003-08-12T09:58Z

Jo... det kan jag ha... men man "ser" aldrig menyerna.. exempel:
meny1:

> webforum
> medlemmar
> testar

vi trycker på webforum

meny2:

> **webForum**
> Up one level
>  \>\> Macce - Länk vidare
>  \>\> voigtann1 - Länk vidare

vi trycker på Macce:

meny3:

> **Macce**
> Up one level
>  \>\> Information
>  \>\> Kontakta

etc etc.. förstår du?
men på admin sidan vill jag lista alla rubriker, underrubriker, under-underrubriker osv i en select box så att allt syns hur menyn ser ut tex:

> webforum
> \-- Macce
> \---- Information
> \---- Kontakta
> \-- Voigtann1
> medlemmar
> testar

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

## #31 — Macce, 2003-08-12T10:00Z

ok, då är jag med !

Men för att få det sista måste du nog köra rekursivt, annars har du en begränsning på antalet nivåer

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

## #32 — voigtann1, 2003-08-12T10:02Z

jo jag vet... det är det sista jag har stora problem med...

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

## #33 — Macce, 2003-08-12T10:18Z

Skriptet är enkelt att modifiera om du vill skriva ut alla nivåer på en gång,  behöver/vill du ha hjälp med det ?

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

## #34 — voigtann1, 2003-08-12T10:28Z

All hjälp jag kan få vore jag tacksam... option värdet ska vara IDt på meyn.. databasen ser ut:

ID
namn
link - länk ID:t
url - Om detta värde är större än 0 så är det en länk och inte en meny till fler underrubriker

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

## #35 — Macce, 2003-08-12T10:36Z

hmm, studera detta exempel mot min databas

```
<%
arrLinks		=		GetRows("SELECT page_id,parent_page_id,linktext FROM tbl_links ORDER BY orderid ")
intGrpId		=		1 

  Response.Write "<select name='frmValue' >"&VbCrlf		
	Call LinkTree(intGrpId,0)
  Response.Write "</select>"

Sub LinkTree(intParent,intIndent) :	Dim X,Z
		For X = 0 To Ubound(arrLinks,2)		
			If arrLinks(1,X) = intParent Then
			strIndent=""
				For Z = 1 To intIndent : strIndent = strIndent & " -" : Next								
				Response.Write("<option value='"&arrLinks(0,X)&"'>"&strIndent&" "&arrLinks(2,X)&"</option>"&VbCrlf)					
				Call LinkTree(arrLinks(0,X),intIndent + 1)			
			End If
		Next 
End Sub

Function GetRows(ByVal SQL)
		Dim arrRecords, rs	
		Set Connection = Server.CreateObject("ADODB.Connection")
		Connection.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.Mappath("\linktree\links.mdb"))		
		Set rs = Connection.Execute(SQL)
		If Not rs.BOF Or Not rs.EOF Then
			arrRecords = rs.GetRows()
		ELSE
			arrRecords = ""
		End If		
		rs.Close
		Set rs = nothing
		Connection.Close
		Set Connection = nothing
		GetRows = arrRecords 
End Function
%>
```

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

## #36 — voigtann1, 2003-08-12T10:55Z

link 0 min lägsta meny jag kan ha.. då ska jag sätta intGrId = 0 eller hur? men det fungera inte.

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

## #37 — Macce, 2003-08-12T11:05Z

"parent_page_id" är noll då, men du får aldrig ha samma "page_id" som "parent_page_id" då blir det rungång.

Alltså låt "page_id" börja från tio eller nåt

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

## #38 — voigtann1, 2003-08-12T11:09Z

```
<!-- #include file="database.asp" -->
<%
arrLinks		=		GetRows("SELECT * FROM menu ORDER BY link")
intGrpId		=		10 

  Response.Write "<select name='frmValue' >"&VbCrlf		
	Call LinkTree(intGrpId,0)
  Response.Write "</select>"

Sub LinkTree(intParent,intIndent) :	Dim X,Z
		For X = 0 To Ubound(arrLinks,2)		
			If arrLinks(1,X) = intParent Then
			strIndent=""
				For Z = 1 To intIndent : strIndent = strIndent & " -" : Next								
				Response.Write("<option value='"&arrLinks(0,X)&"'>"&strIndent&" "&arrLinks(2,X)&"</option>"&VbCrlf)					
				Call LinkTree(arrLinks(0,X),intIndent + 1)			
			End If
		Next 
End Sub

Function GetRows(ByVal SQL)
		Dim arrRecords, rs	
		Set Connection = Server.CreateObject("ADODB.Connection")
		Connection.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.Mappath("\fr\db\hallon.mdb"))		
		Set rs = Connection.Execute(SQL)
		If Not rs.BOF Or Not rs.EOF Then
			arrRecords = rs.GetRows()
		ELSE
			arrRecords = ""
		End If		
		rs.Close
		Set rs = nothing
		Connection.Close
		Set Connection = nothing
		GetRows = arrRecords 
End Function
%>
```

den skriver inte ut något i selectboxen

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

## #39 — Macce, 2003-08-12T11:18Z

intGrpId, ska vara din första kategori parent_page_id.

fungerar exemplet jag gav dig med min db ?

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

## #40 — Macce, 2003-08-12T11:19Z

SELECT \* FROM menu ORDER BY link

vilka fält hämtar du och i vilken ordning ?

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/82963-skriv-ut-under-menyer/page2  
Föregående sida: https://www.webforum.nu/amne/asp/82963-skriv-ut-under-menyer.md  
Nästa sida: https://www.webforum.nu/amne/asp/82963-skriv-ut-under-menyer/page3.md
