---
title: "Meny hjälp"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/120005-meny-hjälp"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "voigtann1"
published: "2005-01-12T21:15:17.000Z"
updated: "2005-01-25T19:32:21.000Z"
replies: 7
views: 409
page: 1
pages: 1
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/120005-meny-hjälp"
---

# Meny hjälp

## #1 — voigtann1, 2005-01-12T21:15Z

```
function button_plus(byVal strCINT,strMenu)
 if cint(strCINT) > 0 then button_plus = "<a href='javascript:menu(""meny"&strMenu&""")'><img src='plus.gif' border=0 ID='plusmeny"&strMenu&"'></a>" else button_plus = "<img src='blank.gif' border=0>"
end function

Sub LinkTree(intParent,intIndent) :	Dim X,Z
  For X = 0 To Ubound(arrLinks,2)

    If arrLinks(1,X) = intParent Then
    if intIndent < 1 then
     strCat = "<tr ID='meny"& arrlinks(1,x)&"' style='display:block;'><td>"
    else
     strCat = "<tr ID='meny"& arrlinks(1,x)&"' style='display:none;'><td>"
    end if

    For Z = 1 To intIndent : strIndent = strIndent & "<img src='null.gif'>" : Next

    SQL = "select count(*) as test from menu where link = "& arrlinks(0,x)
    set recset = conn.execute(SQL)
     If Not recset.BOF Or Not recset.EOF Then
      ArrMenu = recset.GetRows()
     ELSE
      arrRecords = ""
     end if

     Response.Write(strCat &strIndent& button_plus(Arrmenu(0,0),arrlinks(0,x)) & strtest & " " &arrLinks(2,X)& strIndent2 & "</td></tr>"&VbCrlf)

     Call LinkTree(arrLinks(0,X),intIndent + 1)
    End If
  Next
End Sub
```

Som ni ser försöker jag ändra om Macce kod. Nu vill jag att om en katogori har en under-katalog så ska den underkatalogen har en \<table ID=''meny"& arrlinks(1,x)&"'\> men jag har lite svårt att tänka ut hur man kan göra det... funderade om man kan använda "button_plus()" funktionen ungefär och fixa detta... men jag har bara stirrat mig blind på koden nu i några timmar...

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

## #2 — voigtann1, 2005-01-12T23:44Z

på <http://voigt.se/meny.asp>
finns exempel på hur jag vill ha den... och hur den fungera just nu

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

## #3 — voigtann1, 2005-01-15T18:15Z

kanske med hjälp av:

```
For Z = 1 To intIndent : strIndent = strIndent & "<img src='null.gif'>" : Next
```

för att kanske skriva \<table\> med just det ID... problemet är ju att nästa "menyval" som ska inte ha \<table\> då table redan är skriven...

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

## #4 — voigtann1, 2005-01-16T22:23Z

Försökt lite ny kod

```
arrLinks	=	GetRows("SELECT ID,Link,namn,url,type FROM menu")
intGrpId	=	0

'Ladda menyn
Call LinkTree(intGrpId,0)

function button_plus(byVal strCINT,strMenu)
 if cint(strCINT) > 0 then button_plus = "<a href='javascript:menu(""meny"&strMenu&""")'><img src='plus.gif' border=0 name='plusmeny"&strMenu&"'></a>" else button_plus = "<img src='blank.gif' border=0>"
end function

function button_test(byVal strCINT,strMenu)
 if cint(strCINT) > 0 then
  button_test = "<tr><td><table name='meny"&strMenu&"' style='display:none'>"
 end if
end function

Sub LinkTree(intParent,intIndent) :	Dim X,Z
  For X = 0 To Ubound(arrLinks,2)

    SQL = "select count(*) as test from menu where link = "& arrlinks(0,x)
    set recset = conn.execute(SQL)
     If Not recset.BOF Or Not recset.EOF Then
      ArrMenu = recset.GetRows()
     ELSE
      arrRecords = ""
     end if

    if not (x+1) > ubound(arrLinks,2) then
      if arrlinks(1,x) <> arrlinks(1,x+1) then
        ta = "</table></td></tr>"
      end if
    end if
    If arrLinks(1,X) = intParent Then
      For Z = 1 To intIndent
       strIndent = strIndent & "<img src='null.gif'>"
      Next
     Response.Write("<tr>"&VbCrlf& " <td>" &strIndent& button_plus(Arrmenu(0,0),arrlinks(0,x)) & "" &arrLinks(2,X)& strIndent2 & "</td>" & VbCrlf & "</tr>"&VbCrlf & ta & button_test(Arrmenu(0,0),arrlinks(0,x)))
     Call LinkTree(arrLinks(0,X),intIndent + 1)
    End If

  Next
End Sub
```

Förstå inte riktigt var felet ligger... förutom att det är fel på den :P förstå inte riktigt hur (Om man ens kan lösa detta).. link = 0 ska vara huvudmenyn..

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

## #5 — voigtann1, 2005-01-17T21:38Z

Nu är bara problemet(som jag ser det) att koden vet när 

```
</table>
```

Ska läggas in efter en underrubrik slutar.

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

## #6 — voigtann1, 2005-01-22T15:30Z

Tror nästan att koden fungera "för bra" att den skriver ut för mycket....

inte någon som har en idé för att fixa detta? 
kan det vara något med:

```
Call LinkTree(arrLinks(0,X),intIndent + 1)
```

 på underaden av response.write(... kanske? eller den gör bara en till utskrift OM det finns en \]\]**intIndent + 1**

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

## #7 — voigtann1, 2005-01-25T18:49Z

försöker lite med färger på sidan nu bara för att hitta lite struktur i hela smeten:

```
Sub LinkTree(intParent,intIndent) :	Dim X,Z
  For X = 0 To Ubound(arrLinks,2)

    SQL = "select count(*) as test from menu where link = "& arrlinks(0,x)
    set recset = conn.execute(SQL)
     If Not recset.BOF Or Not recset.EOF Then
      ArrMenu = recset.GetRows()
     ELSE
      arrRecords = ""
     end if

    if not (x+1) > ubound(arrLinks,2) then
      if arrlinks(1,x) <> arrlinks(1,x+1) then
        ta = "<font color='#ff0000'>&lt;/table><br></font><font color='#0000AA'>&lt;/td><br></font><font color='#00AA00'>&lt;/tr></font>"
      end if
    end if

    If arrLinks(1,X) = intParent Then
      For Z = 1 To intIndent
       strIndent = strIndent & "<img src='null.gif'>"
      Next

     if NOT meny = arrLinks(1,x) then
     skapa_table = "<font color='#ff0000'>&lt;table id='meny" & arrLinks(1,X) &"' style='display:none;' border='0' cellspacing='0' cellpadding='0'><br></font>"
     end if

     if intIndent = 0 then
     response.write "<font color='#ff0000'>&lt;/table&gt;</font><br>"
     end if

     response.write(skapa_table)
     Response.Write("<font color=green>&lt;tr></font><br>"&VbCrlf)
     response.write("<font color=blue> &lt;td>" &strIndent& button_plus(Arrmenu(0,0),arrlinks(0,x)) & "" &arrLinks(2,X) & "&lt;/td></font><br>" & VbCrlf)
     response.write("<font color=green>&lt;/tr></font><br>"&VbCrlf)
     meny = arrLinks(1,X)
     Call LinkTree(arrLinks(0,X),intIndent + 1)
    End If

  Next
End Sub
```

Just nu försökte jag:

```
     if NOT meny = arrLinks(1,x) then
     skapa_table = "<font color='#ff0000'>&lt;table id='meny" & arrLinks(1,X) &"' style='display:none;' border='0' cellspacing='0' cellpadding='0'><br></font>"
     end if

     if intIndent = 0 then
     response.write "<font color='#ff0000'>&lt;/table&gt;</font><br>"
     end if
```

där den gör en "kass" gemförelse för det är inget som håller i längden... som man redan ser på resultatet på voigt.se/meny/
måste jag göra en SQL sats eller något för att lägga till \</table\> och \<table style='display:hidden'\> för att skapa "boxarna" för under-menyerna?

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

## #8 — voigtann1, 2005-01-25T19:32Z

Nu börja jag komma någon vart!:

```
Sub LinkTree(intParent,intIndent) :	Dim X,Z
  For X = 0 To Ubound(arrLinks,2)

    SQL = "select count(*) as test from menu where link = "& arrlinks(0,x)
    set recset = conn.execute(SQL)
     If Not recset.BOF Or Not recset.EOF Then
      ArrMenu = recset("test")
     ELSE
      arrRecords = ""
     end if

    if not (x+1) > ubound(arrLinks,2) then
      if arrlinks(1,x) <> arrlinks(1,x+1) then
        ta = "<font color='#ff0000'>&lt;/table><br></font><font color='#0000AA'>&lt;/td><br></font><font color='#00AA00'>&lt;/tr></font>"
      end if
    end if

    If arrLinks(1,X) = intParent Then
      For Z = 1 To intIndent
       strIndent = strIndent & "<img src='null.gif'>"
      Next

     if arrlinks(1,x) > intGrpId then
       skapa_table = "<font color='#ff0000'>&lt;table id='meny" & arrLinks(1,X) &"' style='display:none;' border='0' cellspacing='0' cellpadding='0'><br></font>"
     else
       test =  "<font color='#ff0000'>&lt;/table&gt;</font><br>"
     end if     
     response.write(skapa_table)
     Response.Write("<font color=green>&lt;tr></font><br>"&VbCrlf)
     response.write("<font color=blue> &lt;td>" &strIndent& button_plus(Arrmenu,arrlinks(0,x)) & "" &arrLinks(2,X) & "&lt;/td></font><br>" & VbCrlf)
     response.write("<font color=green>&lt;/tr></font><br>"&VbCrlf)

     Call LinkTree(arrLinks(0,X),intIndent + 1)
    End If

  Next
End Sub
```

Problemet nu är att nu skriver den ut 2 st meny4.. ska man skapa en array som kontrollera alla menyer som har skrivits tidigare så att den \<table\> inte läggs in en gång till?

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/120005-meny-hjälp
