Avatar billede dtc Nybegynder
23. februar 2004 - 08:21 Der er 10 kommentarer og
1 løsning

menu + submenu + sprogstyring

Hej jeg har lavet dette - men det virker ikke helt som jeg ønsker. Lige nu får man selvfølgelig menuen vist når man logger på sitet og når man klikker på et menupunkt åbner den main.asp
Hvis der er submenu knyttet til fremtræder denne så nedenunder alle menupunkter...således:

TEST 1
TEST 2
TEST 3

Undermenu 1
Undermenu 1.1

Jeg vil gerne have det til at gøre således:

TEST 1
Undermenu 1
Undermenu 1.1
TEST 2
TEST 3

Her er koden:


      <!------- MENU -------->
      <%
                      set rs=server.CreateObject("ADODB.Recordset")
                      rs.open "SELECT * FROM tblTOPMENU where aktiv='Y' and sprog='DK' order by raekkefoelge ASC ",conn
                      %> <%
                      f = 0
                      farve = "#ffffff"

                      do while not rs.eof %>
    </td>
  </tr>
  <tr>
    <td height="20" align="left">&nbsp;&nbsp; <% if rs("ELx") = "Y" Then %> <A HREF="http://<%=rs("EL")%>" target="_blank"><br>
      <%=rs("menu")%></A>
      <% else if rs("MAILx") = "Y" Then %> &nbsp;&nbsp;
      <A HREF="mailto:<%=rs("MAIL")%>"> <%=rs("menu")%></A>
  <% else if rs("MENUx") = "Y" Then %>    &nbsp;&nbsp;
      <A HREF="main.asp?id=<%=rs("Id")%>">
      <% =rs("menu") %>
      </A>
      <% end if
      end if
      end if %>
    </td>
  </tr>
  <%        rs.MoveNext()
loop
%>


      <!------- SUBMENU -------->
      <%
SQL = "SELECT * FROM submenu WHERE id= '" & request.querystring("id") & "' and sprog ='DK' order by raekkefolge ASC"
Set rs  = Conn.execute(SQL)
%> <%
                      f = 0
                      farve = "#ffffff"

                      do while not rs.eof %> </td>
  </tr>
  <tr>
    <td height="20" align="left">&nbsp;&nbsp; <% if rs("ELx1") = "Y" Then %> <A HREF="http://<%=rs("EL1")%>" target="_blank"><font color="ff9900"><%=rs("submenu")%></font></A><br> <% else if rs("MAILx1") = "Y" Then %> <A HREF="mailto:<%=rs("MAIL1")%>">
      <font color="ff9900"><%=rs("submenu")%></font></A> <% else if rs("MENUx1") = "Y" Then %> <A HREF="submain.asp?id=<%=rs("Id")%>&Id2=<%=rs("submenu")%>"><font color="ff9900">
      <% =rs("submenu") %>
      </font> </A> <% end if
  end if
      end if %> </td>
  </tr>
  <%
rs.MoveNext()
loop
%>
Avatar billede fennec Nybegynder
23. februar 2004 - 08:43 #1
rs.open "SELECT * FROM tblTOPMENU where aktiv='Y' and sprog='DK' order by raekkefoelge ASC ",conn
do while not rs.eof
  Tegn overmenu....
  rs1.open "SELECT * FROM submenu WHERE parentMenuID="& rs("id")&" and id= '" & request.querystring("id") & "' and sprog ='DK' order by raekkefolge ASC",conn
  do while not rs1.eof
    tegn UnderMenu.....
    rs1.MoveNext
  loop
  rs.MoveNext
loop

Jeg kan ikke lige se hvordan du knytter en submenu til en over menu, så jeg har gættet (parentMenuID). Men det skal du bare ændre.

Denne menu er dog ikke særlig dynamisk. Jeg har lavet grundtegningen til en dynamisk menu her http://www.eksperten.dk/spm/455312 hvis det har interesse...
Avatar billede dtc Nybegynder
23. februar 2004 - 08:56 #2
Det kunne jeg da MEGET godt tænke mig at se nærmere på!
Avatar billede mik Nybegynder
23. februar 2004 - 13:05 #3
Jeg følger med i tråden. Jeg ved godt at fennec hjalp mig på et tidspunkt ( http://www.eksperten.dk/spm/455312 ), men jeg kan ikke gnnemskue svaret.
Avatar billede fennec Nybegynder
23. februar 2004 - 13:31 #4
>> mik

Der mangler rigtig nok forklaring på hvad der sker, hvorfor det kan være svært at gennemskue. Det kan jeg selv se nu, men det er jo (næsten) altid let at forstå ens egen kode.

Hvis du ikke har løst problemet på anden måde, vil jeg med glæde uddybe det i aften, da jeg ikke har tid lige nu. Jeg har desuden fået lavet en bedre tegnefunk siden :)
Avatar billede dtc Nybegynder
23. februar 2004 - 13:40 #5
>> fennec

Jeg glæder mig til at se din løsning.....jeg er meget interesseret!
Avatar billede mik Nybegynder
23. februar 2004 - 14:16 #6
>>fennec
Det må du meget gerne, har du brug for noget mere uddybende kode kan jeg sende/lægge det op på nettet...
Avatar billede fennec Nybegynder
23. februar 2004 - 20:33 #7
Ok her kommer det så. Jeg er startet helt fra bunden, så andre også kan følge med. Jeg regner med at lave en artikel senere, som giver en grundigere gennemgang af menu'en, og hvilke muligheder man har med den. Indtil vidre må I nøjes med dette. Stil gerne spørgsmål, for så har jeg mere at beskrive i artiklen.

Vi starter med databasen. Her oprettet vi en tabel ”menu” som indeholder menu’en.

Table menu:
ID  int    antonummer  Primary not null
PID int
Link nvarchar(50)
Menu nvarchar(50)

Pid vil angive hvilken menu, menu’en er under. Hvis pId = null så er det et toppunkt.
Link siger næsten sig selv
Menu (gæt engang)

Vi skal have lidt data i menu’en.

Id  pID  link                menu
---------------------------------------
1  null    forside.asp    Forside
2  null    kontakt.asp    Kontakt
3  2        formand.asp  Formand
4  2        revisor.asp    Revisor


Lad os så få tegnet menuen. Til det skal vi bruge en funktion, så vi kan kalde funktionen i funktionen

Function TegnMenu(ThisID,Indrykning)
dim FunkRS

'select rodpunkter eller underpunkter
if ThisID <> "" then
  'Underpunkter
  set FunkRS = conn.Execute("select * from menu where pID="& ThisID)
else
  'Roden af menuen
  set FunkRS = conn.execute("select * from menu where pID is null")
end if

do while not FunkRS.eof
  'tegn menupunktet
  response.write  Indrykning & "<a href="""& FunkRS("link") &""">"& FunkRS("menu") &"</a><br>"&chr(13)
  'kald funktionen igen for at finde evt underpunkter
  TegnMenu FunkRS("id"),Indrykning&"&nbsp;&nbsp;"
  FunkRS.MoveNext
loop
End function

Når vi så vil tegne menuen skriver vi bare:
TegnMenu "",""
Avatar billede dtc Nybegynder
24. februar 2004 - 01:07 #8
>> fennec - jeg forstår det altså ikke rigtigt!
Avatar billede fennec Nybegynder
24. februar 2004 - 08:29 #9
hvad er det du ikke forstår??? mangler lidt info.
Avatar billede dtc Nybegynder
01. marts 2004 - 23:28 #10
LUKKER
Avatar billede wilweb Nybegynder
12. november 2005 - 21:02 #11
fennec prøv og se her: http://www.eksperten.dk/spm/664011
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