Avatar billede laksen Nybegynder
03. december 2003 - 09:40 Der er 20 kommentarer og
1 løsning

Syntaktproblem i menu

Jeg har en menu på min side downloadet fra http://javascript.cooldev.com/scripts/coolmenu/. Den har følgende grundsyntaks:

var menu =
[
{definition af menu},
{top1},
  sub:[
  {definition af sub},
  {sub1},
  {sub2}
  ]
},
{top2},
  sub:[
  {definition af sub},
  {sub3},
  {sub4}
  ]
}
];
(teksten i felterne indeholder adskillige elementer, som jeg har undladt for overskuelighedens skyld.)

Variablen menu kaldes efterfølgende på siden.
Jeg vil imidlertid gerne kunne putte en if-else-sætning ind i menu-strengen, for at menuen kan blive dynamisk. Når jeg gør det, melder den fejl, da den ikke forstår syntaksen for menuen. Er der en måde, hvorpå man kan "snyde" menu-variablen?
Avatar billede mm12010 Nybegynder
03. december 2003 - 10:15 #1
tjeck=true;
var MENU_ITEMS =
[
    {"pos":[10,10], "itemoff":[21,0], "leveloff":[21,0], "style":STYLE, "size":[22,150]},
    {code:(tjeck==true)?"HAHA":"Sizing", url:"sizing/index.html", "target":"mainFrame"},
Avatar billede laksen Nybegynder
03. december 2003 - 10:35 #2
Det ser ud til at virke. Hvordan kan man lave en for-løkke uden brug af { og } ?
Avatar billede mm12010 Nybegynder
03. december 2003 - 10:38 #3
det gør man ikke :o)
Avatar billede laksen Nybegynder
03. december 2003 - 11:10 #4
Argh! Så er jeg jo på den.... Der skal nemlig laves en sub-menu med variabelt antal felter, hvor dataene hentes fra en database. Hvis databasen returnerer 4 værdier, skal der være 4 felter i sub-menuen osv. Det ville jeg lave ved at sætte en for-løkke til at køre koden i ring, men så melder den fejl. Nogle idéer?
Avatar billede mm12010 Nybegynder
03. december 2003 - 11:13 #5
udskriv hele js-filen via din asp eller php
Avatar billede laksen Nybegynder
03. december 2003 - 11:30 #6
hmmm... Det vil jeg forsøge mig med. Vender tilbage senere...
Avatar billede laksen Nybegynder
03. december 2003 - 13:22 #7
Nu har jeg lavet menu-strengen i asp. Men når jeg sender den ind i scriptet virker det ikke.

Strengen ser således ud: [{'pos':[0,0], 'itemoff':[0,128], 'leveloff':[21,0], 'style':style_top, 'size':[22,128]},{code:'Top1', 'format':{'leveloff':[24,2]},sub:[{'itemoff':[21,0], 'size':[22,100]},{code:'Sub1', 'format':{'style':style_sub}, url:'link.asp?id=1'},{code:'Sub2', 'format':{'style':style_sub}, url:'link.asp?id=2'}]}];

Når jeg udskriver menu-strengen og copy-paster den ind i scriptet, virker det fint, så strengen er korrekt.

Jeg kan bare ikke få det til at fungere, når strengen skal importeres fra asp til javascript...
Avatar billede mm12010 Nybegynder
03. december 2003 - 13:28 #8
du skal huske at omdøbe din js-fil til .asp ex:

<script language="JavaScript" type="text/JavaScript" src="menus.asp">
</script>


jeg er lige på vej ud af døren, men vender tilbage hurtigst muligt
Avatar billede laksen Nybegynder
03. december 2003 - 13:41 #9
Nu har jeg sat min asp-kode, der genererer menu-strengen i et dokument for sig, jf. dit svar lige ovenfor.

Når jeg kalder menu-strengen i hoved-dokumentet, kan den stadig ikke forstå strengen.
Avatar billede mm12010 Nybegynder
04. december 2003 - 10:52 #10
hvordan genererer du strengen?
Avatar billede laksen Nybegynder
04. december 2003 - 11:04 #11
Jeg genererer følgende kode i asp:
[{'pos':[0,0], 'itemoff':[0,128], 'leveloff':[21,0], 'style':style_top, 'size':[22,128]},{code:'Top1', 'format':{'leveloff':[24,2]},sub:[{'itemoff':[21,0], 'size':[22,100]},{code:'Sub1', 'format':{'style':style_sub}, url:'link.asp?id=1'},{code:'Sub2', 'format':{'style':style_sub}, url:'link.asp?id=2'}]}];
Hvis jeg indsætter ovenstående manuelt fungerer det fint, men jeg kan ikke få serverne til at forstå asp-strengen korrekt. Det betyder med andre ord, at det ikke spiller :( Jeg ved ikke om serveren tror, at det er tekst/tal-streng eller hvad problemet er? Den vil bare ikke "æde" strengen...
Avatar billede mm12010 Nybegynder
04. december 2003 - 11:09 #12
et lille eksempel fra en af mine menuer:

Menu3=new Array("UDSTILLINGER","","",3,20,whw);
    Menu3_1=new Array("Aktuelle","/kunst/udst/udst.asp?period=now","",0,20,whw);
    Menu3_2=new Array("Kommende","/kunst/udst/udst.asp?period=next","",0);
    <%
    dato=new Date();
    arstal=new Array();
    i=0;
    for(n=dato.getFullYear(); n>=2000; n--){
        arstal[i]=n;
        i++;
        }
    %>
    Menu3_3=new Array("Tidligere","/kunst/udst/udst.asp?period=pre","",<%=arstal.length%>);
    <%
    for(i=0;i<arstal.length;i++){
        %>
        Menu3_3_<%=i+1%>=new Array("<%=arstal[i]%>","/kunst/udst/udst.asp?period=pre&ar=<%=arstal[i]%>","",0<%=(i==0)?",20,100":""%>);
        <% } %>


og den inkludres sådan:

<script language="JavaScript" type="text/JavaScript" src="menus.asp">
</script>
Avatar billede laksen Nybegynder
04. december 2003 - 11:27 #13
Jeg forstår ikke rigtig, hvornår du skriver i asp/javascript. Inde i dine "<%" og "%>" er der jo javascript... Jeg tror du må forklare mig det lidt mere grundlæggende for at jeg kan forstå det :(
Avatar billede mm12010 Nybegynder
04. december 2003 - 11:30 #14
det er fordi jeg kode asp i JS, men det har som sådan ikke noget sagen at gøre, det strukturen/måde at gøre det på der spørgsmålet
Avatar billede laksen Nybegynder
04. december 2003 - 11:55 #15
Jeg sætter meget gerne pointene op, hvis du kan lave et lille funktionelt eksempel af mine data. Jeg kan paste lidt kode, hvis du er frisk :D ?
Avatar billede mm12010 Nybegynder
04. december 2003 - 12:16 #16
jepper
Avatar billede laksen Nybegynder
04. december 2003 - 12:25 #17
Vent lidt....jeg tror faktisk, at jeg har fattet noget at dit eksempel...skal lige se om jeg kan få det til at fungere
Avatar billede laksen Nybegynder
04. december 2003 - 12:42 #18
Det virker! Nu mangler jeg bare at få en asp-variabel fra mit hoveddokument (default.asp) over i den inkluderede script-fil (menu.asp). Hvordan gør man det?
Avatar billede laksen Nybegynder
04. december 2003 - 12:48 #19
Har fundet ud af, at man kan skrive alm. variabler på "menu.asp":
<script type="text/javascript" language="javascript" src="menu.asp?var1=a&var2=b"></script>
Avatar billede laksen Nybegynder
04. december 2003 - 12:48 #20
Du kan vist bare lægge et svar. Så må jeg håbe, at jeg ikke går i stå senere...
Avatar billede mm12010 Nybegynder
04. december 2003 - 12:51 #21
ok :o)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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