Avatar billede meyer Nybegynder
04. december 2008 - 10:32 Der er 34 kommentarer og
1 løsning

Menu i 2 (3) kolonner

Jeg har kigget mig blind på den her:

Jeg har 3 kolonner og 4 rækker, kolonne 1 er de 4 hovedmenuer, kolonne 2 skal så liste de første 4 undermenuer til f.eks. hovemenu 1 når man klikker på den - fra top til bund, kolonne 3 skal liste resten af undermenuerne hvis der er flere - men jeg kan ikke få den på plads i hjernen ;-)

Nogen der kan hjælpe her?
Avatar billede mortvader Nybegynder
04. december 2008 - 11:24 #1
hvad snakker vi om her?
Avatar billede meyer Nybegynder
04. december 2008 - 11:30 #2
At jeg har min menu i databasen, skal liste den ud i 3 kolonner

1. Hovedmenu
2. de første 4 fra undermenu (ved klik i hovedmenu)
3. de sidste fra undermenu
Avatar billede mortvader Nybegynder
04. december 2008 - 11:41 #3
Ok, du er nødt til at være meget mere konkret. Jeg er i hvert fald totalt blank..
Avatar billede meyer Nybegynder
04. december 2008 - 11:49 #4
Never mind - klarede den med at loope dem sidelæns - ellers tak :-)
Avatar billede meyer Nybegynder
04. december 2008 - 11:51 #5
øhh... nej det gjorde jeg alligevel ikke ;-)
Avatar billede mortvader Nybegynder
04. december 2008 - 11:55 #6
kom hellere med koden, så kan det være vi andre kan få en fornemmelse af hvad det er du spørger om :)
Avatar billede meyer Nybegynder
04. december 2008 - 11:55 #7
Ok. Prøv at se her: www.meyerweb.dk/menu.jpg
Avatar billede meyer Nybegynder
04. december 2008 - 11:56 #8
Kolonne 1 er hovedmenuerne - der er klikket på den øverste og så skal den hente
de næste 2 kolonner og skrive dem ud først de 4 første i kolonne 2 og så de sidste 3 i kolonne 3 - det er her jeg kører fast :-(
Avatar billede mortvader Nybegynder
04. december 2008 - 11:58 #9
ok, det kan jeg godt lave til dig. Men har lige noget andet først. Hvis ikke andre melder sig, skal jeg fixe det til dig i løbet af et par timer...
Avatar billede meyer Nybegynder
04. december 2008 - 12:00 #10
Du er en helt 1000 tak :-)
Avatar billede mortvader Nybegynder
04. december 2008 - 12:44 #11
Hej igen. Jeg blev hurtig færdig med det andet, så her har du din lille menu :)

<%
hovedmenustr="Tegnestuen,Projekter,Highlights,Kontakt"
undermenustr="Tegnestuen;Profil*profil.asp;Partnere*partnere.asp;Værdier & mål*vm.asp;Fakta*fakta.asp;Historie*historie.asp;Medarbejdere*medarbejdere.asp;Ydelser*ydelser.asp,"&_
            "Projekter;Superprojekt*projekter.asp?id=1;Det flotte*projekter.asp?id=2;Fint A/S*projekter.asp?id=3;Kanon*projekter.asp?id=4;Mesterligt*projekter.asp?id=5,"&_
            "Highlights;Highligt 1*hl.asp?id=1;Highligt 2*hl.asp?id=2;Highligt c*hl.asp?id=3,"&_
            "Kontakt;Aalborg*kontakt.asp?id=aalborg;Århus*kontakt.asp?id=aarhus"

hovedmenu=split(hovedmenustr,",")
undermenuer=split(undermenustr,",")

dim grid(3,4)

for i=0 to 3
  grid(0,i)="<a href='?menu="&i&"'>"&hovedmenu(i)&"</a>"
  grid(1,i)=""
  grid(2,i)=""
next

hmsel=request.querystring("menu")&""
if hmsel="" then hmsel=0

x=1
y=0

for i=0 to ubound(undermenuer)
  punkter=split(undermenuer(i),";")
  if hovedmenu(hmsel)=punkter(lbound(punkter)) then
    for t=lbound(punkter)+1 to ubound(punkter)

      punkt=split(punkter(t),"*")

      grid(x,y)="<a href='"&punkt(ubound(punkt))&"'>"&punkt(lbound(punkt))&"</a>"
      y=y+1
      if y>3 then
        y=0
        x=x+1
      end if
    next
  end if
next

response.write "<table border=1>"
for y=0 to 3
  response.write "<tr>"
  for x=0 to 2
    response.write "<td>"&grid(x,y)&"</td>"
  next
  response.write "</tr>"
next
response.write "</table>"
%>
Avatar billede meyer Nybegynder
04. december 2008 - 12:55 #12
Du er da godt nok hurtig :-) må prøve at få den ind og hente dataerne i databasen og se om det lykkes ;-)

1000 tak :-)
Avatar billede meyer Nybegynder
04. december 2008 - 12:55 #13
smid lige et svar :-)
Avatar billede mortvader Nybegynder
04. december 2008 - 13:05 #14
Yeah.. sig til hvis du har problemer med ovenstående ;)
Avatar billede meyer Nybegynder
04. december 2008 - 13:07 #15
Ok tak, det vil jeg gøre :-)
Avatar billede meyer Nybegynder
04. december 2008 - 14:12 #16
Hej igen mortvader.

Jeg har en del problemer med den - for det første så skal jeg trække menuerne ud af databasen (hovedmenustr=rs("menuen") osv). For det andet så skal jeg trække menuID med ud sådan at linket f.eks. hedder default.asp?menuID=1 (det trækker den med rs("menuID") - men udover det så er hovedmenulinkene lavet med stylesheet - så de er sorte og undermenuerne er en anden farve - kan det løses med den her?

Ja det bliver værre endnu ;-) der skal også være en markering af den valgte menu - om det enten er en hovedmenu eller en undermenu så man kan se hvad man har klikket på... tror du kan se det på det link jeg skrev tidligere.
Avatar billede mortvader Nybegynder
04. december 2008 - 14:13 #17
Hvordan ligger dine menupunkter i databasen?
Avatar billede meyer Nybegynder
04. december 2008 - 14:26 #18
De ligger med:

menuID - menuen - overmenu - hovedmenu
1 - TEGNESTUEN - TOM - 1
2 - PROJEKTER - TOM - 1
3 - HIGHLIGHTS - TOM - 1
4 - KONTANT - TOM - 1
5 - PROFIL - 1 - TOM

osv.. som du kan se så er HOVEDMENUER markeret i "hovedmenu" med 1
undermeneuer er markeret i "overmenu" med menuID fra Hovedmenuen..

Håber du forstår,... :-)
Avatar billede mortvader Nybegynder
04. december 2008 - 14:29 #19
Jo, men der må være mere. Vi mangler at få at vide, hvad menupunkterne skal linke til.

Nå, jeg er lige optaget nogle timer, men jeg vender tilbage senere.. :)
Avatar billede meyer Nybegynder
04. december 2008 - 14:30 #20
de skal bare linke til default.asp allesammen med deres menuID

ok :-)
Avatar billede mortvader Nybegynder
04. december 2008 - 16:23 #21
Nu kan jeg naturligvis ikke teste op mod din DB, men se om ikke dette får menupunkterne på plads.

<%
hovedmenustr=""
undermenustr=""
set rs=conn.execute("select * from menutabel where hovedmenu=1")
while not rs.eof
  substr=""
  set under=conn.exeute("select * from menutabel where overmenu="&rs("id"))
  while not under.eof
    substr=substr&";"&under("menuen")&"*default.asp?id="&under("id")
    under.movenext
  wend
  under.close
  set under=nothing

  undermenustr=undermenustr&rs("menuen")&substr&","
  hovedmenustr=hovedmenustr&rs("menuen")

  rs.movenext

wend
rs.close
set rs=nothing

hovedmenustr=left(hovedmenustr,len(hovedmenustr)-1)
undermenustr=left(undermenustr,len(undermenustr)-1)
%>
Avatar billede meyer Nybegynder
04. december 2008 - 16:41 #22
Jeg får fejl på den her:  set under=conn.execute("select * from menu where overmenu="&rs("id"))

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.
Avatar billede mortvader Nybegynder
04. december 2008 - 16:53 #23
Den brokker sig over at der ikke er et felt i tabellen menu som hedder overmenu.

Var det ikke sådan nedenstående skulle tolkes?

menuID - menuen - overmenu - hovedmenu
1 - TEGNESTUEN - TOM - 1
2 - PROJEKTER - TOM - 1
3 - HIGHLIGHTS - TOM - 1
4 - KONTANT - TOM - 1
5 - PROFIL - 1 - TOM
Avatar billede mortvader Nybegynder
04. december 2008 - 16:54 #24
nåh nej...

Det er selvfølgelig ID feltet den piver over... fix:

set under=conn.execute("select * from menu where overmenu="&rs("menuid"))
Avatar billede meyer Nybegynder
04. december 2008 - 17:06 #25
Får fejl her: set rs1=conn.execute("select * from menu where overmenu="&rs("menuid"))

Det er et tekstfelt - hvis det hjælper dig?
Avatar billede mortvader Nybegynder
04. december 2008 - 17:07 #26
set rs1=conn.execute("select * from menu where overmenu='"&replace(rs("menuid"),"'","''"&"'")
Avatar billede meyer Nybegynder
04. december 2008 - 17:15 #27
Hmmm... så siger den: [Microsoft][ODBC Microsoft Access Driver] Syntax error in string in query expression 'overmenu='1'.
Avatar billede mortvader Nybegynder
04. december 2008 - 17:58 #28
det forstår jeg ikke helt. paste lige hele den linie som er problemet.
feltet "overmenu" er et tekstfelt, siger du?
Avatar billede meyer Nybegynder
04. december 2008 - 18:06 #29
Her er linien:
set rs1=conn.execute("select * from menu where overmenu='"&replace(rs("menuid"),"'","''"&"'"))

Ja det er et tekstfelt :-)
Avatar billede meyer Nybegynder
04. december 2008 - 18:07 #30
Id nummeret er da rigtigt kan jeg se.
Avatar billede meyer Nybegynder
04. december 2008 - 18:13 #31
Har fundet fejlen :-)

set rs1=conn.execute("select * from menu where overmenu='"&replace(rs("menuid"),"'","''")&"'")

Satte lige parantesen ind på plads.
Avatar billede meyer Nybegynder
04. december 2008 - 18:14 #32
Men hvad gør jeg så nu da den har samlet alle oplysninger ind?

Du må undskylde at jeg er lidt tung i dag - har knoklet med et andet site siden i går morges, så trænger vist snart til en tur i drømmeland ;-)
Avatar billede mortvader Nybegynder
04. december 2008 - 18:59 #33
Jammen så sætter du det ind i stedet for mine "hardcodede" menuer..

(dem der:)

hovedmenustr="Tegnestuen,Projekter,Highlights,Kontakt"
undermenustr="Tegnestuen;Profil*profil.asp;Partnere*partnere.asp;Værdier & mål*vm.asp;Fakta*fakta.asp;Historie*historie.asp;Medarbejdere*medarbejdere.asp;Ydelser*ydelser.asp,"&_
            "Projekter;Superprojekt*projekter.asp?id=1;Det flotte*projekter.asp?id=2;Fint A/S*projekter.asp?id=3;Kanon*projekter.asp?id=4;Mesterligt*projekter.asp?id=5,"&_
            "Highlights;Highligt 1*hl.asp?id=1;Highligt 2*hl.asp?id=2;Highligt c*hl.asp?id=3,"&_
            "Kontakt;Aalborg*kontakt.asp?id=aalborg;Århus*kontakt.asp?id=aarhus"
Avatar billede meyer Nybegynder
05. december 2008 - 08:15 #34
Ok - endnu en gang 1000 tak for hjælpen :-)
Avatar billede mortvader Nybegynder
05. december 2008 - 08:23 #35
det var så lidt. den her slags små opgaver er sjove :)
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