Avatar billede bobbedude Nybegynder
14. maj 2009 - 09:09 Der er 17 kommentarer og
1 løsning

Hvor jeg kom fra getParent

Mærker
-Til Hovedet
--Hjelme
--Hatte
--Huer
-Til Kroppen
--Bukser
--Skjorter
--Tshirt

hvis jeg klikker på Bukser hvordan kan jeg så se at den kommer fra "Til Kroppen" ?

Jeg prøvede med:

function getParent(funkPID)
    dim funkRS
      set funkRS = Connect.execute("select RefID from menu where ID="& funkPID)
      if funkRS(0) = round(ShowMenu) then
        getParent = funkPID
      else
        getParent = getParent(funkRS(0))
      end if
    end function    

Men den går jo helt tilbage til Mærker.
Avatar billede fennec Nybegynder
14. maj 2009 - 09:16 #1
Så du vil kun finden den aktuelle parent??

Så skal du kun ET niveau, hvilket er en direkte select:

getSingleParent(funkPID)
dim funkRS
  set funkRS= conn.execute("select RefID from menu where ID="& pageID)
  getSingleParent= funkRS("refID")
end function
Avatar billede fennec Nybegynder
14. maj 2009 - 09:17 #2
... En lille fejl:
getSingleParent(funkPID)
dim funkRS
  set funkRS= conn.execute("select RefID from menu where ID="& funkPID)
  getSingleParent= funkRS("refID")
end function
Avatar billede bobbedude Nybegynder
14. maj 2009 - 09:29 #3
Men hvad nu hvos der står

Mærker
-Til Hovedet
--Hjelme
---Æggehjelm
---Metalhjelm
--Hatte
--Huer

Og jeg klikker på "Metalhjelm" finder den så også "Til Hovedet" ?
Avatar billede fennec Nybegynder
14. maj 2009 - 09:37 #4
Nej, så finder den "Hjelme".

Du bliver nød til at definere opgaven lidt bedre :)

Så det du vil er at uanset hvilket niveau du på er i din menu, så vil du finde parentID'et på det element som er lige før topelementet. Altså kun ID'er fra niveau 2 ("Mærker" er topniveau og defineret som niveau 1)
Avatar billede bobbedude Nybegynder
14. maj 2009 - 10:33 #5
Fennec ja sorry jeg ikke udtrykte mig tydliger
Avatar billede fennec Nybegynder
14. maj 2009 - 10:39 #6
Hmmmm. Ja, Den er sku lidt indviklet at klare...

Hvad indeholder ShowMenu variablen af data?
Avatar billede bobbedude Nybegynder
14. maj 2009 - 10:53 #7
et tal
databasen har et ID og et parentID og tallet i showmenu er et ID
Avatar billede fennec Nybegynder
14. maj 2009 - 11:22 #8
Så i dette tilfælde er det id'et på "Mærker"?
Avatar billede bobbedude Nybegynder
14. maj 2009 - 12:17 #9
yes, sorry var lige ude
Avatar billede fennec Nybegynder
14. maj 2009 - 13:13 #10
Prøv denne (ikke testet)

function get2TopParent(funkPID, funkReturnID)
dim funkRS
    set funkRS = Connect.execute("select RefID from menu where ID="& funkPID)
    if funkRS(0) = round(ShowMenu) then
        getParent = funkReturnID
    else
        getParent = getParent(funkRS(0), funkPID)
    end if
end function

pID = get2TopParent(123, 123)

Den kaldes med samme id i begge parametre.
Avatar billede fennec Nybegynder
14. maj 2009 - 13:14 #11
Crap. Fejl igen:

function get2TopParent(funkPID, funkReturnID)
dim funkRS
    set funkRS = Connect.execute("select RefID from menu where ID="& funkPID)
    if funkRS(0) = round(ShowMenu) then
        get2TopParent = funkReturnID
    else
        get2TopParent = get2TopParent(funkRS(0), funkPID)
    end if
end function
Avatar billede bobbedude Nybegynder
14. maj 2009 - 13:41 #12
Hej Fennec hvad er funkReturnID ??
Avatar billede fennec Nybegynder
14. maj 2009 - 13:53 #13
Det ID som skal returneres.

Det fungere på den måde at det forige fundet id sendes med i funktionen. Nå man derfor har fundet det allerøverste ID, så returnere vi det foregårende ID i stedet for det aktuelle fundet.
Avatar billede bobbedude Nybegynder
15. maj 2009 - 08:15 #14
Jeg kan simelhen ikke finde ud af at få det til at virker :o(
Avatar billede fennec Nybegynder
15. maj 2009 - 08:56 #15
Den fungerede ikke helt rigtigt. Jeg har testet på en database med disse data:
id, refID
87, NULL
837, 87
856, 837
910, 856

Der har jeg brugt denne funktion:
function get2TopParent(funkPID)
dim funkRS
    set funkRS = oConn.execute("select refID from menu where ID="& funkPID)
    if funkRS(0) = round(ShowMenu) then
        get2TopParent = funkPID
    else
        get2TopParent = get2TopParent(funkRS(0))
    end if
end function

disse 3 kald returnere alle 837:
response.write get2TopParent(837) &"<br>"
response.write get2TopParent(856) &"<br>"
response.write get2TopParent(910) &"<br>"
Avatar billede fennec Nybegynder
15. maj 2009 - 08:57 #16
... ShowMenu = 87 da det er top menu punktet.
Avatar billede bobbedude Nybegynder
23. september 2010 - 22:16 #17
oh det længe siden smid et svar
Avatar billede fennec Nybegynder
28. september 2010 - 08:00 #18
Det får du her.
.o) <-- One Eyed Jack
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