Avatar billede -kenner- Nybegynder
03. august 2005 - 13:46 Der er 37 kommentarer og
1 løsning

Dropdown-menu forsvinder af og til.

Hej eksperter,

Jeg har lige overtaget en hjemmeside fra en anden designer, og jeg undre mig over hvorfor menuen forsvinder af og til. Siderne bliver vist fint, når man trykker på linksne, men menuen er bare væk, og det er helt tilfeldigt hvilke sider der mangler menuen, nogle gange den ene, andre gange den anden.

I kan se selve siden her: www.rolsted-cykler.dk/index_hemlig.php

På index siden bliver menuen hentet ind med følgende kode:

<script language="JavaScript" src="js/macromediascript.js" type="text/javascript"></script>
<script language="JavaScript" src="js/coolmenus4.js" type="text/javascript"></script>
<script language="JavaScript" src="js/coolmenus4_properties.js" type="text/javascript"></script>
<script language="JavaScript" src="js/coolmenus4_array.js.php" type="text/javascript"></script>


Filen js/macromediascript.js ser sådan ud:
function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
  if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

Filen js/coolmenus4.js ser sådan ud:
function cm_bwcheck(){
    this.ver=navigator.appVersion
    this.agent=navigator.userAgent.toLowerCase()
    this.dom=document.getElementById?1:0
    this.op5=(this.agent.indexOf("opera 5")>-1 || this.agent.indexOf("opera/5")>-1) && window.opera
  this.op6=(this.agent.indexOf("opera 6")>-1 || this.agent.indexOf("opera/6")>-1) && window.opera 
  this.ie5 = (this.agent.indexOf("msie 5")>-1 && !this.op5 && !this.op6)
  this.ie55 = (this.ie5 && this.agent.indexOf("msie 5.5")>-1)
  this.ie6 = (this.agent.indexOf("msie 6")>-1 && !this.op5 && !this.op6)
    this.ie4=(this.agent.indexOf("msie")>-1 && document.all &&!this.op5 &&!this.op6 &&!this.ie5&&!this.ie6)
  this.ie = (this.ie4 || this.ie5 || this.ie6)
    this.mac=(this.agent.indexOf("mac")>-1)
    this.ns6=(this.agent.indexOf("gecko")>-1 || window.sidebar)
    this.ns4=(!this.dom && document.layers)?1:0;
    this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.op5 || this.op6)
  this.usedom= this.ns6//Use dom creation
  this.reuse = this.ie||this.usedom //Reuse layers
  this.px=this.dom&&!this.op5?"px":""
    return this
}
var bw=new cm_bwcheck()
/*Variable declaration*/
var cmpage,cm_eventlayer=0,cm_eventlayerE=0
/*Crossbrowser objects functions*/
function cm_message(txt){alert(txt); return false}
function cm_makeObj(obj,nest,o){
  if(bw.usedom&&o) this.evnt=o
  else{nest=(!nest) ? "":'document.layers.'+nest+'.'
    this.evnt=bw.dom? document.getElementById(obj):
    bw.ie4?document.all[obj]:bw.ns4?eval(nest+"document.layers." +obj):0;
  }
  if(!this.evnt) return cm_message('The layer does not exist ('+obj+')'
    +'- \nIf your using Netscape please check the nesting of your tags (on the entire page)\nNest:'+nest)
  this.css=bw.dom||bw.ie4?this.evnt.style:this.evnt; this.ok=0
  this.ref=bw.dom||bw.ie4?document:this.css.document;
  this.obj = obj + "Object";     eval(this.obj + "=this");
  this.x=0; this.y=0; this.w=0; this.h=0; this.vis=0; return this
}
cm_makeObj.prototype.moveIt = function(x,y){this.x=x;this.y=y; this.css.left=x+bw.px;this.css.top=y+bw.px}
cm_makeObj.prototype.showIt = function(o){this.css.visibility="visible"; this.vis=1; if(bw.op5&&this.arr){ this.arr.showIt(); }}//alert('showing arrow')}}
cm_makeObj.prototype.hideIt = function(no){this.css.visibility="hidden"; this.vis=0;}
cm_makeObj.prototype.clipTo = function(t,r,b,l,setwidth){
this.w=r; this.h=b; if(bw.ns4){this.css.clip.top=t;this.css.clip.right=r; this.css.clip.bottom=b;this.css.clip.left=l
}else{if(t<0)t=0;if(r<0)r=0;if(b<0)b=0;if(b<0)b=0; this.css.clip="rect("+t+bw.px+","+r+bw.px+","+b+bw.px+","+l+bw.px+")";
if(setwidth){if(bw.op5||bw.op6){this.css.pixelWidth=r; this.css.pixelHeight=b;}else{this.css.width=r+bw.px; this.css.height=b+bw.px;}}}}
function cm_active(on,h){
  if(this.o.arr) on?this.o.arr.hideIt():bw.op5?this.o.arr.showIt():this.o.arr.css.visibility="inherit"
  if(bw.reuse||bw.usedom){
    if(!this.img2) this.o.evnt.className=on?this.cl2:this.cl
    else document.images["img"+this.name].src=on?this.img2.src:this.img1.src;
    if(on && bw.ns6){this.o.hideIt(); this.o.css.visibility='inherit' }; //netscape 6 bug fix 
  }else{ 
    if(!this.img2){ if(on) this.o.over.showIt(); else this.o.over.hideIt();
    }else this.o.ref.images["img"+this.name].src=on?this.img2.src:this.img1.src;
  }this.isactive=on?1:0
}
/***Pageobject **/
function cm_page(){
  this.x=0; this.x2 =(!bw.ie)?window.innerWidth:document.body.offsetWidth-20;
  this.y=0; this.orgy=this.y2= (!bw.ie)?window.innerHeight:document.body.offsetHeight-6;
  this.x50=this.x2/2; this.y50=this.y2/2; return this
}
/***check positions**/
function cm_cp(num,w,minus){
    if(num){if(num.toString().indexOf("%")!=-1){var t = w?cmpage.x2:cmpage.y2; num=parseInt((t*parseFloat(num)/100))
  if(minus) num-=minus }else num=eval(num);} else num=0; return num
}
/**Level object**/
function cm_makeLevel(){
  var c=this, a=arguments; c.width=a[0]||null; c.height=a[1]||null;
  c.regClass=a[2]||null; c.overClass=a[3]||null; c.borderX=a[4]||null;
  c.borderY=a[5]||null; c.borderClass=a[6]||null; c.rows=a[7]>-1?a[7]:null;
  c.align=a[8]||null; c.offsetX=a[9]||null; c.offsetY=a[10]||null; c.arrow=a[11]||null;
  c.arrowWidth=a[12]||null; c.arrowHeight=a[13]||null; return c
}
/***Making the main menu object**/
function makeCM(name){
  var c=this; c.mc=0; c.name = name; c.m=new Array(); c.level=new Array(); c.l=new Array(); c.tim=100; c.isresized=0;
  c.isover=0; c.zIndex=100; c.bar=0; c.z=0; c.totw=0; c.toth=0; c.maxw=0; c.maxh=0; cmpage = new cm_page();
}//events
makeCM.prototype.onshow=""; makeCM.prototype.onhide=""; makeCM.prototype.onconstruct="";
/***Creating layers**/
function cm_divCreate(id,cl,txt,w,c,app,ex,txt2){
  if(bw.usedom){var div=document.createElement("DIV"); div.className=cl; div.id=id;
    if(txt) div.innerHTML=txt; if(app){app.appendChild(div); return div}
    if(w) document.body.appendChild(div); return div
  }else{var dstr='<div id="'+id+'" class="'+cl+'"'
    if(ex&&bw.reuse) dstr+=" "+ex; dstr+=">"+txt; ; if(txt2) dstr+=txt2;
    if(c) dstr+='</div>'; if(w) document.write(dstr); else return dstr
  }return ""
}
/***Getting layer string for each menu**/
function cm_getLayerStr(m,app,name,fill,clb,arrow,ah,aw,root){
  var no=m.nolink,arrstr='',l=m.lev,str='',txt=m.txt,ev='', id=name + '_' + m.name,d1; if(app) d1=app
  if((!bw.reuse||l==0) && !no){
    ev=' onmouseover="'+name+'.showsub(\''+m.name+'\')"'
    +' onmouseout="'+name+'.mout(\''+m.name+'\')"' //Added 4.02
    +' onclick="'+name+'.onclck(\''+m.name+'\'); return false" '
  }
  if(bw.reuse&&l!=0) txt=''; if(l==0) str+=d1=cm_divCreate(id+'_0',clb,''); str+=m.d2=cm_divCreate(id,m.cl,txt,0,0,d1,ev)
  if(l==0&&bw.usedom){
    m.d2.onclick=new Function(name+'.onclck("'+m.name+'")');
    m.d1=d1;
    m.d2.onmouseover=new Function(name+'.showsub("'+m.name+'")');
    m.d2.onmouseout=new Function(name+'.mout("'+m.name+'")') //Added 4.02
  }if(!bw.reuse && !m.img1 && !no){
    str+=cm_divCreate(id+'_1',m.cl2,txt,0,1)
    str+=cm_divCreate(id+'_3',"clCMAbs",'<a href="#" '+ev+'><img alt="" src="'+root+fill+'" width="'+m.w+'" height="'+m.h+'" border="0" /></a>',0,1)
  }str+='</div>';
  if(l==0){if(arrow)str+=m.d3=cm_divCreate(id+'_a','clCMAbs','<img alt="" height="'+aw+'" width="'+ah+'" src="'+root+arrow+'" />',0,1,d1); str+="</div>"}
  str+="\n"; if(!bw.reuse){m.txt=null; m.d2=null; m.d3=null;}
  if(bw.usedom){ if(l==0) document.body.appendChild(d1); str=''}
  return str
}
/***get align num from text (better to evaluate numbers later)**/
function cm_checkalign(a){
  switch(a){
    case "right": return 1; break; case "left": return 2; break;
    case "bottom": return 3; break; case "top": return 4; break;
    case "righttop": return 5; break; case "lefttop": return 6; break;
    case "bottomleft": return 7; break; case "topleft": return 8; break;
  }return null
}
/**Making each individual menu **/
makeCM.prototype.makeMenu=function(name,parent,txt,lnk,targ,w,h,img1,img2,cl,cl2,align,rows,nolink,onclick,onmouseover,onmouseout){
  var c = this; if(!name) name = c.name+""+c.mc; var p = parent!=""&&parent&&c.m[parent]?parent:0;
  if(c.mc==0){var tmp=location.href;
    if(tmp.indexOf('file:')>-1||tmp.charAt(1)==':') c.root=c.offlineRoot; else c.root=c.onlineRoot
    if(c.useBar){if(!c.barBorderClass) c.barBorderClass=c.barClass; c.bar1 = cm_divCreate(c.name+'bbar_0',c.barClass,'',0,1);
      c.bar = cm_divCreate(c.name+'bbar',c.barBorderClass,'',1,1,0,0,c.bar1); if(bw.usedom) c.bar.appendChild(c.bar1);   
    }}var create=1,img,arrow; var m = c.m[name] = new Object(); m.name=name; m.subs=new Array(); m.parent=p; m.arnum=0; m.arr=0
  var l = m.lev = p?c.m[p].lev+1:0; c.mc++; m.hide=0;
  if(l>=c.l.length){
    var p1,p2=0; if(l>=c.level.length) p1=c.l[c.level.length-1];
    else p1=c.level[l]; c.l[l]=new Array(); if(!p2) p2=c.l[l-1]
    if(l!=0){ if(isNaN(p1.align)) p1["align"]=cm_checkalign(p1.align)
      for(i in p1){if(i!="str"&&i!="m"){if(p1[i]==null) c.l[l][i]=p2[i]; else c.l[l][i]=p1[i] }}
    }else{c.l[l]=c.level[0]; c.l[l].align=cm_checkalign(c.l[l].align)}
    c.l[l]["str"]=''; c.l[l].m=new Array(); if(!c.l[l].borderClass) c.l[l].borderClass=c.l[l].regClass
    c.l[l].app=0; c.l[l].max=0; c.l[l].arnum=0; c.l[l].o=new Array(); c.l[l].arr=new Array()
    c.level[l]=p1=p2=null
    if(l!=0) c.l[l].str=c.l[l].app=cm_divCreate(c.name+ '_' +l+'_0',c.l[l].borderClass,'')
  }if(p){p = c.m[p]; p.subs[p.subs.length]=name;
    if(p.subs.length==1&&c.l[l-1].arrow){ p.arr=1;
      if(p.parent){c.m[p.parent].arnum++
        if(c.m[p.parent].arnum>c.l[l-1].arnum){
          c.l[l-1].str+=c.l[l-1].arr[c.l[l-1].arnum]=cm_divCreate(c.name+ '_a' +(l-1)+'_'+c.l[l-1].arnum,'clCMAbs','<img height="'+c.l[l-1].arrowHeight
            +'" width="'+c.l[l-1].arrowWidth+'" src="'+c.root+c.l[l-1].arrow+'" alt="" />',0,1,c.l[l-1].app); c.l[l-1].arnum++
        }}}if(bw.reuse) if(p.subs.length>c.l[l].max) c.l[l].max = p.subs.length; else create=0
  }m.rows=rows>-1?rows:c.l[l].rows; m.w=cm_cp(w||c.l[l].width,1); m.h=cm_cp(h||c.l[l].height,0); m.txt=txt; m.lnk=lnk;
  if(align) align=cm_checkalign(align); m.align=align||c.l[l].align; m.cl=cl=cl||c.l[l].regClass;
  m.targ=targ; m.cl2=cl2||c.l[l].overClass; m.create=create;  m.mover=onmouseover; m.out=onmouseout;
  m.onclck=onclick; m.active = cm_active; m.isactive=0; m.nolink=nolink
  if(create) c.l[l].m[c.l[l].m.length]=name
  if(img1){m.img1 = new Image(); m.img1.src=c.root+img1; if(!img2) img2=img1; m.img2 = new Image(); m.img2.src=c.root+img2;
    m.cl="clCMAbs"; m.txt=''; if(!bw.reuse&&!nolink) m.txt = '<a href="#" onmouseover="'+c.name+'.showsub(\''+name+'\')" onmouseout="'+c.name+'.mout(\''+name+'\')" onclick="'+c.name+'.onclck(\''+name+'\'); return false">';;
    m.txt+='<img alt="" src="'+c.root+img1+'" width="'+m.w+'" height="'+m.h+'" id="img'+m.name+'" '
    if(bw.dom&&!nolink) m.txt+='style="cursor:pointer; cursor:hand"'; if(!bw.reuse){if(!bw.dom) m.txt+='name="img'+m.name+'"'; m.txt+=' border="0"'}; m.txt+=' />'; if(!bw.reuse&&!nolink) m.txt+='</a>'
  }else{m.img1=0; m.img2=0};
  if(l==0||create) c.l[l].str+=cm_getLayerStr(m,c.l[l].app,c.name,c.fillImg,c.l[l].borderClass,c.l[l].arrow,c.l[l].arrowWidth,c.l[l].arrowHeight,c.root)
  if(l==0){if(m.w>c.maxw) c.maxw=m.w; if(m.h>c.maxh) c.maxh=m.h; c.totw+=c.pxBetween+m.w+c.l[0].borderX;c.toth+=c.pxBetween+m.h+c.l[0].borderY}
  if(lnk && !onmouseover) m.mover="self.status='"+c.root+m.lnk+"'"
}
/**Getting x/y coords for subs **/
makeCM.prototype.getcoords=function(m,bx,by,x,y,maxw,maxh,ox,oy){
  var a=m.align; x+=m.o.x; y+=m.o.y
  switch(a){
    case 1:  x+=m.w+bx; break; case 2:  x-=maxw+bx; break;
    case 3:  y+=m.h+by; break; case 4:  y-=maxh+by; break;
    case 5:  x-=maxw+bx; y-=maxh-m.h; break;
    case 6:  x+=m.w+bx; y-=maxh-m.h; break;
    case 7:  y+=m.h+by; x-=maxw-m.w; break;
    case 8:  y-=maxh+by; x-=maxw-m.w+bx; break;
  }m.subx=x + ox; m.suby=y + oy
}
/**Showing sub elements**/
makeCM.prototype.showsub=function(el){
  var c=this,pm=c.m[el];
  if(!pm.b||(c.isresized&&pm.lev>0)) pm.b=c.l[pm.lev].b; c.isover=1
  clearTimeout(c.tim);
  var ln=pm.subs.length,l=pm.lev+1
  if(c.l[pm.lev].a==el&&l!=c.l.length){if(c.l[pm.lev+1].a) c.hidesub(l+1,el); return}
  c.hidesub(l,el); if(pm.mover) eval(pm.mover); if(!pm.isactive) pm.active(1);
  c.l[pm.lev].a = el; if(ln==0) return;
  var b = c.l[l].b, bx=c.l[l].borderX, by=c.l[l].borderY, rows=pm.rows
  var x=bx,y=by,maxw=0,maxh=0,cn=0; b.hideIt()
  for(var i=0;i<c.l[l].m.length;i++){ 
    if(!bw.reuse) m=c.m[c.l[l].m[i]]
    else m=c.m[c.m[el].subs[i]]
    if(m && m.parent==el&&!m.hide){
      if(!bw.reuse) o=m.o; else o=m.o=c.l[l].o[i]
      if(x!=o.x||y!=o.y) o.moveIt(x,y); nl=m.subs.length
      if(bw.reuse){
        if(o.w!=m.w || o.h!=m.h) o.clipTo(0,m.w,m.h,0,1)
        if(o.evnt.className!=m.cl){
          m.isactive=0; o.evnt.className=m.cl
          if(bw.ns6){o.hideIt(); o.css.visibility='inherit'} //NS6 bugfix
        }if(bw.ie6) b.showIt()//IE6 bugfix (scrollbars)
        o.evnt.innerHTML=m.txt; if(bw.ie6) b.hideIt()
        if(!m.nolink){
          o.evnt.onmouseover=new Function(c.name+".showsub('"+m.name+"')")
          o.evnt.onmouseout=new Function(c.name+".mout('"+m.name+"')") //Added 4.02
          o.evnt.onclick=new Function(c.name+".onclck('"+m.name+"')")
          if(o.oldcursor){o.css.cursor=o.oldcursor; o.oldcursor=0;}
        }else{o.evnt.onmouseover=''; o.evnt.onclick='';  if(o.css.cursor=='') o.oldcursor=bw.ns6?"pointer":"hand"; else o.oldcursor=o.css.cursor; o.css.cursor="auto"}       
      }if(m.arr){o.arr=c.l[l].arr[cn]; o.arr.moveIt(x + m.w-c.l[l].arrowWidth-3,y+m.h/2-(c.l[l].arrowHeight/2));
      o.arr.css.visibility="inherit"; cn++;} else o.arr=0
      if(!rows){y+=m.h+by; if(m.w>maxw) maxw=m.w; maxh=y}
      else{x+=m.w+bx; if(m.h>maxh) maxh=m.h; maxw=x;}
      o.css.visibility="inherit"; if(bw.op5||bw.op6) o.showIt()
    }else{o = c.m[c.l[l].m[i]].o; o.hideIt();} }
  if(!rows) maxw+=bx*2; else maxh+=by*2; b.clipTo(0,maxw,maxh,0,1)
  if(!pm.subx||!pm.suby||c.srollY>0||c.isresized) c.getcoords(pm,c.l[l-1].borderX,c.l[l-1].borderY,pm.b.x,pm.b.y,maxw,maxh,c.l[l-1].offsetX,c.l[l-1].offsetY)
  x=pm.subx; y=pm.suby; b.moveIt(x,y); if(c.onshow) eval(c.onshow); b.showIt()
}
/**Hide sub elements **/
makeCM.prototype.hidesub=function(l,el){
  var c = this,tmp,m,i,j
  if(!l){if(!l) l=1;}
  for(i=l-1;i<c.l.length;i++){
    if(i>0&&i>l-1) c.l[i].b.hideIt()
    if(c.l[i].a&&c.l[i].a!=el){
      m=c.m[c.l[i].a]; m.active(0,1); if(m.mout) eval(m.mout); c.l[i].a=0
      if(i>0&&i>l-1) if(bw.op5||bw.op6) for(j=0;j<c.l[i].m.length;j++) c.m[c.l[i].m[j]].o.hideIt()
    }if(i>l){for(j=0;j<c.l[i-1].arnum;j++){c.l[i-1].arr[j].hideIt(); if(bw.op6) c.l[i-1].arr[j].moveIt(-1000,-1000)}} //opera bug
  }if(!l&&c.onhide) eval(c.onhide) //onhide event
}
/***Make all menu div objects**/
makeCM.prototype.makeObjects=function(nowrite){
  var c = this,oc,name,bx,by,w,h,l,no,ar,id,nest
  if(!nowrite){
    for(i=0;i<c.l.length;i++){
      if(i!=0) c.l[i].str+="</div>"
      if(!bw.usedom) document.write(c.l[i].str)
      else if(i>0) document.body.appendChild(c.l[i].app)
      c.l[i].str=null //Probably need this on frames version though
    }}c.z=c.zIndex+2
  for(i=0;i<c.l.length;i++){oc=0
    if(i!=0){bobj=c.l[i].b = new cm_makeObj(c.name + "_"+i+"_0","",c.l[i].app); bobj.css.zIndex=c.z;
    if(bw.dom) bobj.css.overflow='hidden'}; bx=c.l[i].borderX; by=c.l[i].borderY; c.l[i].max=0;
    for(j=0;j<c.l[i].m.length;j++){
      m = c.m[c.l[i].m[j]]; name=m.name; w=m.w; h=m.h; l=m.lev; no=m.nolink;
      if(i>0){m.b = bobj; nest=i}
      else{m.b = new cm_makeObj(c.name + "_"+name+"_0","",m.d1); m.b.css.zIndex=c.z; m.b.clipTo(0,w+bx*2,h+by*2,0,1); nest=name}
      id = c.name + "_"+name; nest=c.name + "_"+nest;
      if(m.create){
        o=m.o=new cm_makeObj(id,nest+"_0",m.d2); o.z=o.css.zIndex=c.z+1; if(bw.reuse){c.l[l].o[oc]=o; oc++};
        if(l==0&&m.img1) o.css.visibility='inherit'; if(bw.op5) o.showIt(); o.arr=0;
      }if(!bw.reuse||l==0) o.clipTo(0,w,h,0,1); o.moveIt(bx,by); o.z=o.css.zIndex=c.z+2
      if(j<c.l[i].arnum){
        c.l[i].arr[j]=new cm_makeObj(c.name+"_a"+i+"_"+j,nest+"_0",nowrite?0:c.l[i].arr[j])
        c.l[i].arr[j].css.zIndex=c.z+30+j;
      }else if(l==0&&m.arr==1){
        o.arr=new cm_makeObj(id+"_a",nest+"_0",m.d3)
        o.arr.moveIt(bx+m.w-c.l[i].arrowWidth-3,by+m.h/2-(c.l[i].arrowHeight/2));
        o.arr.css.zIndex=c.z+20;
      }if(!no && !bw.reuse && !m.img1){ 
        o.over=new cm_makeObj(c.name + "_"+name+"_1",nest+"_0"+".document.layers."+id)
        o.over.moveIt(0,0); o.over.hideIt(); o.over.clipTo(0,w,h,0,1); o.over.css.zIndex=c.z+3
        img=new cm_makeObj(c.name + "_"+name+"_3",nest+"_0"+".document.layers."+id); img.moveIt(0,0)
        img.css.visibility="inherit"; img.css.zIndex=c.z+4; if(bw.op5) img.showIt()
      }c.z++;
    }
  }
}
/**Onmouseout**/  //Added 4.02
makeCM.prototype.mout = function(){
    var c = this;
  clearTimeout(c.tim)
  c.isover = 0
  c.tim = setTimeout("if(!"+c.name+".isover)"+c.name+".hidesub()",c.wait)
}
/**Constructing and initiating top items and bar**/
makeCM.prototype.construct=function(nowrite){
  var c=this; if(!c.l[0]||c.l[0].m.length==0) return cm_message('No menus defined');
  c.makeObjects(nowrite); cmpage = new cm_page();
  var mpa,o,maxw=c.maxw,maxh=c.maxh,i,totw=c.totw,toth=c.toth,m,px=c.pxBetween
  var bx=c.l[0].borderX,by=c.l[0].borderY,x=c.fromLeft; y=c.fromTop,mp=c.menuPlacement,rows=c.rows
  if(rows){toth=maxh+by*2; totw=totw-px+bx;}else{totw=maxw+bx*2; toth=toth-px+by;}
  switch(mp){
    case "center": x=cmpage.x2/2-totw/2; if(bw.ns4) x-=9; break;
    case "right": x=cmpage.x2-totw; break;
    case "bottom": case "bottomcenter": y=cmpage.y2-toth; if(mp=="bottomcenter") x=cmpage.x2/2-totw/2; break;
    default: if(mp.toString().indexOf(",")>-1) mpa=1; break;
  }for(i=0;i<c.l[0].m.length;i++){
    m = c.m[c.l[0].m[i]]; o = m.b; if(mpa) rows?x=cm_cp(mp[i]):y=cm_cp(mp[i],0,0,1);
    o.moveIt(x,y); o.showIt(); if(m.arr) m.o.arr.showIt(); o.oy=y;
    if(!mpa) rows?x+=m.w+px+bx:y+=m.h+px+by
  }if(c.useBar){ //Background-Bar
    bbx=c.barBorderX; bby=c.barBorderY;
    bar1=c.bar1= new cm_makeObj(c.name+'bbar_0',c.name+'bbar',nowrite?0:c.bar1)
    bar=c.bar= new cm_makeObj(c.name+'bbar','',nowrite?0:c.bar); bar.css.zIndex=c.zIndex+1
    //bar.evnt.onmouseover=new Function(cm_eventlayerE)
    var barx=c.barX=="menu"?c.m[c.l[0].m[0]].b.x-bbx:cm_cp(c.barx,1);
    var bary=c.barY=="menu"?c.m[c.l[0].m[0]].b.y-bby:cm_cp(c.barY);
    var barw=c.barWidth=="menu"?totw:cm_cp(c.barWidth,1,bbx*2);
    var barh=c.barHeight=="menu"?toth:cm_cp(c.barHeight,0,bby*2);
    bar1.clipTo(0,barw,barh,0,1); bar1.moveIt(bbx,bby); bar1.showIt();
    bar.clipTo(0,barw+bbx*2,barh+bby*2,0,1); bar.moveIt(barx,bary); bar.showIt();
  }if(c.resizeCheck){ //Window resize code.
    setTimeout('window.onresize=new Function("'+c.name+'.resized()")',500)
    c.resized=cm_resized; if(bw.op5||bw.op6) document.onmousemove=new Function(c.name+".resized()")
  }if(c.onconstruct) eval(c.onconstruct) //onconstruct event
  return true
}
/**Capturing resize**/
var cm_inresize=0
function cm_resized(){
  if(cm_inresize) return
    page2=new cm_page(); var off=(bw.op6||bw.op5)?15:5
  if(page2.x2<cmpage.x2-off || page2.y2<cmpage.orgy-off || page2.x2>cmpage.x2+off || page2.y2>cmpage.orgy+off){
        if(bw.ie||bw.ns6){
      cmpage=page2; this.isresized=1;
      if(this.onresize) eval(this.onresize); this.construct(1);
      if(this.onafterresize) eval(this.onafterresize)
        }else{cm_inresize=1; location.reload()}
  }
}
/**Onclick of an item**/
makeCM.prototype.onclck=function(m){
  m = this.m[m]
  if(m.onclck) eval(m.onclck);
  lnk=m.lnk; targ=m.targ
  if(lnk){
    if(lnk.indexOf("mailto")!=0 && lnk.indexOf("http")!=0) lnk=this.root+lnk
        if(String(targ)=="undefined" || targ=="" || targ==0 || targ=="_self") location.href=lnk
    else if(targ=="_blank") window.open(lnk)
    else if(targ=="_top" || targ=="window") top.location.href=lnk
    else if(top[targ]) top[targ].location.href=lnk
    else if(parent[targ]) parent[targ].location.href=lnk
  }else return false
}

Filen js/coolmenus4_properties.js ser sådan ud:
/***
This is the menu creation code - place it right after you body tag
Feel free to add this to a stand-alone js file and link it to your page.
**/

//Menu object creation
oCMenu=new makeCM("oCMenu") //Making the menu object. Argument: menuname

oCMenu.frames = 0

//Menu properties 
oCMenu.pxBetween=0
oCMenu.fromLeft=5
oCMenu.fromTop=75 
oCMenu.rows=1
oCMenu.menuPlacement=""
                                                           
oCMenu.offlineRoot=""
oCMenu.onlineRoot=""
oCMenu.resizeCheck=0
oCMenu.wait=1000
oCMenu.fillImg="cm_fill.gif"
oCMenu.zIndex=0

//Background bar properties
oCMenu.useBar=0
oCMenu.barWidth="771"
oCMenu.barHeight="menu"
oCMenu.barClass="clBar"
oCMenu.barX=0
oCMenu.barY=70
oCMenu.barBorderX=0
oCMenu.barBorderY=0
oCMenu.barBorderClass=""

//Level properties - ALL properties have to be spesified in level 0
oCMenu.level[0]=new cm_makeLevel() //Add this for each new level
oCMenu.level[0].width=110
oCMenu.level[0].height=13
oCMenu.level[0].regClass="clLevel0"
oCMenu.level[0].overClass="clLevel0over"
oCMenu.level[0].borderX=1
oCMenu.level[0].borderY=0
oCMenu.level[0].borderClass="clLevel0border"
oCMenu.level[0].offsetX=1
oCMenu.level[0].offsetY=1
oCMenu.level[0].rows=0
oCMenu.level[0].arrow=0
oCMenu.level[0].arrowWidth=0
oCMenu.level[0].arrowHeight=0
oCMenu.level[0].align="bottom"


//EXAMPLE SUB LEVEL[1] PROPERTIES - You have to specify the properties you want different from LEVEL[0] - If you want all items to look the same just remove this
oCMenu.level[1]=new cm_makeLevel() //Add this for each new level (adding one to the number)
oCMenu.level[1].width=108
oCMenu.level[1].height=17
oCMenu.level[1].regClass="clLevel1"
oCMenu.level[1].overClass="clLevel1over"
oCMenu.level[1].borderX=1
oCMenu.level[1].borderY=1
oCMenu.level[1].align="right"
oCMenu.level[1].offsetX=0
oCMenu.level[1].offsetY=0
oCMenu.level[1].borderClass="clLevel1border"


//EXAMPLE SUB LEVEL[2] PROPERTIES - You have to spesify the properties you want different from LEVEL[1] OR LEVEL[0] - If you want all items to look the same just remove this
oCMenu.level[2]=new cm_makeLevel() //Add this for each new level (adding one to the number)
oCMenu.level[2].width=110
oCMenu.level[2].height=17
oCMenu.level[2].offsetX=0
oCMenu.level[2].offsetY=0
oCMenu.level[2].regClass="clLevel2"
oCMenu.level[2].overClass="clLevel2over"
oCMenu.level[2].borderClass="clLevel2border"

Filen js/coolmenus4_array.js.php ser sådan ud:
/******************************************
Menu item creation:
myCoolMenu.makeMenu(name, parent_name, text, link, target, width, height, regImage, overImage, regClass, overClass , align, rows, nolink, onclick, onmouseover, onmouseout)
*************************************/
oCMenu.makeMenu('top0','','&nbsp;: FORSIDEN','http://www.rolsted-cykler.dk','')
    oCMenu.makeMenu('sub00','top0','&nbsp;: forsiden','http://www.rolsted-cykler.dk')
   
oCMenu.makeMenu('top1','','&nbsp;: CYKLER','')
    oCMenu.makeMenu('sub10','top1','&nbsp;: mtb','cykel.php?cykel=mtb')
    oCMenu.makeMenu('sub11','top1','&nbsp;: race','cykel.php?cykel=race')
    oCMenu.makeMenu('sub12','top1','&nbsp;: city','cykel.php?cykel=city')
    oCMenu.makeMenu('sub13','top1','&nbsp;: børnecykler','cykel.php?cykel=children')
   
oCMenu.makeMenu('top2','','&nbsp;: CYKELDELE','')

    oCMenu.makeMenu('sub20','top2','&nbsp;: dæk','dele.php?kategori=')
        oCMenu.makeMenu('sub200','sub20','&nbsp;: mountain','dele.php?kategori=')
        oCMenu.makeMenu('sub201','sub20','&nbsp;: race','dele.php?kategori=')       

    oCMenu.makeMenu('sub22','top2','&nbsp;: tøj','dele.php?kategori=')
        oCMenu.makeMenu('sub220','sub22','&nbsp;: overdel','dele.php?kategori=')
        oCMenu.makeMenu('sub221','sub22','&nbsp;: underdel','dele.php?kategori=')   
        oCMenu.makeMenu('sub222','sub22','&nbsp;: handsker','dele.php?kategori=')   
        oCMenu.makeMenu('sub223','sub22','&nbsp;: tasker','dele.php?kategori=')   
        oCMenu.makeMenu('sub224','sub22','&nbsp;: hjelme','dele.php?kategori=')   
        oCMenu.makeMenu('sub225','sub22','&nbsp;: briller','dele.php?kategori=')                   
       
    oCMenu.makeMenu('sub23','top2','&nbsp;: sko','dele.php?kategori=')
        oCMenu.makeMenu('sub230','sub23','&nbsp;: race','dele.php?kategori=')
        oCMenu.makeMenu('sub231','sub23','&nbsp;: mountain','dele.php?kategori=')   
        oCMenu.makeMenu('sub232','sub23','&nbsp;: spinning','dele.php?kategori=')       

    oCMenu.makeMenu('sub25','top2','&nbsp;: rammer','dele.php?kategori=')
        oCMenu.makeMenu('sub250','sub25','&nbsp;: race','dele.php?kategori=')
        oCMenu.makeMenu('sub251','sub25','&nbsp;: mountain','dele.php?kategori=')       

    oCMenu.makeMenu('sub26','top2','&nbsp;: tilbehør','dele.php?kategori=')
        oCMenu.makeMenu('sub260','sub26','&nbsp;: computere','dele.php?kategori=')
        oCMenu.makeMenu('sub261','sub26','&nbsp;: hjulset','dele.php?kategori=')
        oCMenu.makeMenu('sub262','sub26','&nbsp;: frempind','dele.php?kategori=')
        oCMenu.makeMenu('sub263','sub26','&nbsp;: sadelpinde','dele.php?kategori=')
        oCMenu.makeMenu('sub264','sub26','&nbsp;: styr','dele.php?kategori=')
        oCMenu.makeMenu('sub265','sub26','&nbsp;: grupper','dele.php?kategori=')
        oCMenu.makeMenu('sub266','sub26','&nbsp;: forgafler','dele.php?kategori=')
        oCMenu.makeMenu('sub267','sub26','&nbsp;: pedaler','dele.php?kategori=')
        oCMenu.makeMenu('sub268','sub26','&nbsp;: sadler','dele.php?kategori=')
        oCMenu.makeMenu('sub269','sub26','&nbsp;: andet','dele.php?kategori=')


oCMenu.makeMenu('top3','','&nbsp;: SCOOTER','')
    oCMenu.makeMenu('sub30','top3','&nbsp;: aprilia','scooter.php?scooter=')
    oCMenu.makeMenu('sub31','top3','&nbsp;: vespa','scooter.php?scooter=')
    oCMenu.makeMenu('sub32','top3','&nbsp;: cpi','scooter.php?scooter=')
    oCMenu.makeMenu('sub33','top3','&nbsp;: yahama','scooter.php?scooter=')
    oCMenu.makeMenu('sub34','top3','&nbsp;: honda','scooter.php?scooter=')
    oCMenu.makeMenu('sub35','top3','&nbsp;: tilbehør','tilbehor.php')
   
oCMenu.makeMenu('top4','','&nbsp;: SERVICE','')
    oCMenu.makeMenu('sub40','top4','&nbsp;: service','index2.php?side=service')

oCMenu.makeMenu('top5','','&nbsp;: NYHEDSBREV','')
    oCMenu.makeMenu('sub50','top5','&nbsp;: tilmeld nyhedsbrev','index2.php?side=maillist')
   
oCMenu.makeMenu('top6','','&nbsp;: OM ROLSTED','')       
    oCMenu.makeMenu('sub60','top6','&nbsp;: kontakt Rolsted','kontakt.php')
    oCMenu.makeMenu('sub61','top6','&nbsp;: galleri','galleri.php')
       
//Leave this line - it constructs the menu
oCMenu.construct()
Avatar billede busschou Praktikant
03. august 2005 - 14:58 #1
hvorfor kalde den
js/coolmenus4_array.js.php
og ikke bare
js/coolmenus4_array.js
når den kun indeholder javascript kode?
I min IE forsvinder menuen ganske rigtig engang imellem men ikke konsekvent
I min FF forsvinder den ikke! men javascript consollen meddeler om mange fejl forskellige steder fx:
---
Error: oCMenu is not defined
Source File: http://www.rolsted-cykler.dk/js/coolmenus4.js
Line: 207
Error: oCMenu is not defined
Source File: http://www.rolsted-cykler.dk/js/coolmenus4.js
Line: 109
Error: oCMenu is not defined
Source File: http://www.rolsted-cykler.dk/js/coolmenus4.js
Line: 207
Error: pm has no properties
Source File: http://www.rolsted-cykler.dk/js/coolmenus4.js
Line: 184
Error: this.o has no properties
Source File: http://www.rolsted-cykler.dk/js/coolmenus4.js
Line: 52
---
Alle dem hvor den siger oCMenu is not defined er sikkert der hvor menuen forsvinder. Er du sikker på din js/coolmenus4_array.js.php fil ikke indeholder dynamisk kode som opretter menuen? For hvis man kalder oCMenu.construct() uden at have lavet nogen oCMenu.makeMenu, så vil den give sådan en ligende fejl

Men indrømmet er det lidt uoverskueligt :o)
Avatar billede -kenner- Nybegynder
05. august 2005 - 08:29 #2
Der er også dynamisk kode (PHP) i js/coolmenus4_array.js.php, jeg må have taget en af de andre filer og skrevet den kode, men js/coolmenus4_array.js.php ser sådan ud:

<?
include("../constants.php");
database_open();
?>
/******************************************
Menu item creation:
myCoolMenu.makeMenu(name, parent_name, text, link, target, width, height, regImage, overImage, regClass, overClass , align, rows, nolink, onclick, onmouseover, onmouseout)
******************************************/
<?
$result = mysql_query("select * from front_menu where showmenu='Y' and authlevel<=$_SESSION[AuthLevel] order by sortorder") or die("SQL error");
while ($result_row = mysql_fetch_array($result)){

echo "oCMenu.makeMenu('menu{$result_row[ID]}','".($result_row['parent']>0?"menu".$result_row['parent']:"")."','&nbsp;: $result_row[name]','".($result_row['type']=="nolink"?"":($result_row['type']=="link"?"$result_row[value]":"$mainscript?menuid=$result_row[ID]"))."','');\n";

}
?>
//Leave this line - it constructs the menu
oCMenu.construct();
Avatar billede busschou Praktikant
05. august 2005 - 08:32 #3
altså et bud kunne være at oCMenu.construct(); bliver kaldt uden der inden er lavet oCMenu.makeMenu()
Det vil så betyde at din while løkke kører nul gange
Kan man ikke lave et hurtigt tjek på dette?
Altså hvis $result er tom så udskriv "fejl" eller noget
Så kan vi se om det er det
Avatar billede -kenner- Nybegynder
05. august 2005 - 08:33 #4
Kan du ikke hjælpe md at rætte de linier, hvor der opstår fejl? Jeg er ikke genial til javascript.(js/coolmenus4.js) linierne ser ud som følger:

207:  o.evnt.onmouseout=new Function(c.name+".mout('"+m.name+"')") //Added 4.02
109:  m.d2.onmouseover=new Function(name+'.showsub("'+m.name+'")');
184:  if(!pm.b||(c.isresized&&pm.lev>0)) pm.b=c.l[pm.lev].b; c.isover=1
52:  if(this.o.arr) on?this.o.arr.hideIt():bw.op5?this.o.arr.showIt():this.o.arr.css.visibility="inherit"
Avatar billede -kenner- Nybegynder
05. august 2005 - 08:36 #5
Det kan vel gøres med return og tjekke om return er true?
return($result)
if($result != true){
While kører ikke
}
Avatar billede busschou Praktikant
05. august 2005 - 08:37 #6
når den siger
Error: oCMenu is not defined
Så tyder det på du ikke har kaldt oCMenu.construct();
Avatar billede busschou Praktikant
05. august 2005 - 08:38 #7
Du kan evt også prøve , bare for test, at droppe din
<script language="JavaScript" src="js/coolmenus4_array.js.php" type="text/javascript"></script>
og i stedet erstatte den med indholdet direkte i et script tag
Avatar billede busschou Praktikant
05. august 2005 - 08:40 #8
jeg har en skummel mistanke om at det ikke er altid at din dynamiske javascript/php side bliver kørt
Avatar billede busschou Praktikant
05. august 2005 - 08:43 #9
Du kan i øvrigt nok ikke stole på sådan en fejlmedelelse som jeg forsøgte at få dig til
For den vil ligge inden i javascript kode jo
Avatar billede -kenner- Nybegynder
05. august 2005 - 08:43 #10
Så det bliver:
<script language="JavaScript" type="text/javascript">
/******************************************
Menu item creation:
myCoolMenu.makeMenu(name, parent_name, text, link, target, width, height, regImage, overImage, regClass, overClass , align, rows, nolink, onclick, onmouseover, onmouseout)
*************************************/
oCMenu.makeMenu('top0','','&nbsp;: FORSIDEN','http://www.rolsted-cykler.dk','')
    oCMenu.makeMenu('sub00','top0','&nbsp;: forsiden','http://www.rolsted-cykler.dk')
   
oCMenu.makeMenu('top1','','&nbsp;: CYKLER','')
    oCMenu.makeMenu('sub10','top1','&nbsp;: mtb','cykel.php?cykel=mtb')
    oCMenu.makeMenu('sub11','top1','&nbsp;: race','cykel.php?cykel=race')
    oCMenu.makeMenu('sub12','top1','&nbsp;: city','cykel.php?cykel=city')
    oCMenu.makeMenu('sub13','top1','&nbsp;: børnecykler','cykel.php?cykel=children')
   
oCMenu.makeMenu('top2','','&nbsp;: CYKELDELE','')

    oCMenu.makeMenu('sub20','top2','&nbsp;: dæk','dele.php?kategori=')
        oCMenu.makeMenu('sub200','sub20','&nbsp;: mountain','dele.php?kategori=')
        oCMenu.makeMenu('sub201','sub20','&nbsp;: race','dele.php?kategori=')       

    oCMenu.makeMenu('sub22','top2','&nbsp;: tøj','dele.php?kategori=')
        oCMenu.makeMenu('sub220','sub22','&nbsp;: overdel','dele.php?kategori=')
        oCMenu.makeMenu('sub221','sub22','&nbsp;: underdel','dele.php?kategori=')   
        oCMenu.makeMenu('sub222','sub22','&nbsp;: handsker','dele.php?kategori=')   
        oCMenu.makeMenu('sub223','sub22','&nbsp;: tasker','dele.php?kategori=')   
        oCMenu.makeMenu('sub224','sub22','&nbsp;: hjelme','dele.php?kategori=')   
        oCMenu.makeMenu('sub225','sub22','&nbsp;: briller','dele.php?kategori=')                   
       
    oCMenu.makeMenu('sub23','top2','&nbsp;: sko','dele.php?kategori=')
        oCMenu.makeMenu('sub230','sub23','&nbsp;: race','dele.php?kategori=')
        oCMenu.makeMenu('sub231','sub23','&nbsp;: mountain','dele.php?kategori=')   
        oCMenu.makeMenu('sub232','sub23','&nbsp;: spinning','dele.php?kategori=')       

    oCMenu.makeMenu('sub25','top2','&nbsp;: rammer','dele.php?kategori=')
        oCMenu.makeMenu('sub250','sub25','&nbsp;: race','dele.php?kategori=')
        oCMenu.makeMenu('sub251','sub25','&nbsp;: mountain','dele.php?kategori=')       

    oCMenu.makeMenu('sub26','top2','&nbsp;: tilbehør','dele.php?kategori=')
        oCMenu.makeMenu('sub260','sub26','&nbsp;: computere','dele.php?kategori=')
        oCMenu.makeMenu('sub261','sub26','&nbsp;: hjulset','dele.php?kategori=')
        oCMenu.makeMenu('sub262','sub26','&nbsp;: frempind','dele.php?kategori=')
        oCMenu.makeMenu('sub263','sub26','&nbsp;: sadelpinde','dele.php?kategori=')
        oCMenu.makeMenu('sub264','sub26','&nbsp;: styr','dele.php?kategori=')
        oCMenu.makeMenu('sub265','sub26','&nbsp;: grupper','dele.php?kategori=')
        oCMenu.makeMenu('sub266','sub26','&nbsp;: forgafler','dele.php?kategori=')
        oCMenu.makeMenu('sub267','sub26','&nbsp;: pedaler','dele.php?kategori=')
        oCMenu.makeMenu('sub268','sub26','&nbsp;: sadler','dele.php?kategori=')
        oCMenu.makeMenu('sub269','sub26','&nbsp;: andet','dele.php?kategori=')


oCMenu.makeMenu('top3','','&nbsp;: SCOOTER','')
    oCMenu.makeMenu('sub30','top3','&nbsp;: aprilia','scooter.php?scooter=')
    oCMenu.makeMenu('sub31','top3','&nbsp;: vespa','scooter.php?scooter=')
    oCMenu.makeMenu('sub32','top3','&nbsp;: cpi','scooter.php?scooter=')
    oCMenu.makeMenu('sub33','top3','&nbsp;: yahama','scooter.php?scooter=')
    oCMenu.makeMenu('sub34','top3','&nbsp;: honda','scooter.php?scooter=')
    oCMenu.makeMenu('sub35','top3','&nbsp;: tilbehør','tilbehor.php')
   
oCMenu.makeMenu('top4','','&nbsp;: SERVICE','')
    oCMenu.makeMenu('sub40','top4','&nbsp;: service','index2.php?side=service')

oCMenu.makeMenu('top5','','&nbsp;: NYHEDSBREV','')
    oCMenu.makeMenu('sub50','top5','&nbsp;: tilmeld nyhedsbrev','index2.php?side=maillist')
   
oCMenu.makeMenu('top6','','&nbsp;: OM ROLSTED','')       
    oCMenu.makeMenu('sub60','top6','&nbsp;: kontakt Rolsted','kontakt.php')
    oCMenu.makeMenu('sub61','top6','&nbsp;: galleri','galleri.php')
       
//Leave this line - it constructs the menu
oCMenu.construct()
</script>
Avatar billede busschou Praktikant
05. august 2005 - 08:45 #11
jep lige præcis
For så ved du at din menu bliver dannet korrekt hver eneste gang
Avatar billede -kenner- Nybegynder
05. august 2005 - 08:56 #12
Jeg smider den lige ind så :)
Avatar billede -kenner- Nybegynder
05. august 2005 - 09:00 #13
Nu gik det da helt galt. nu virker ingen links. Link URL'en bliver lavet forkert.
Avatar billede busschou Praktikant
05. august 2005 - 09:06 #14
hmm det er jo de links som står i menuen men jeg kan godt se at der nu så ikke er genereret ideer
Avatar billede busschou Praktikant
05. august 2005 - 09:10 #15
den kode du skrev 08:29:10
Kan du ikke putte den ind på "hovedsiden" på noget ala denne her måde
---
<?
include("../constants.php");
database_open();
?>
/******************************************
Menu item creation:
myCoolMenu.makeMenu(name, parent_name, text, link, target, width, height, regImage, overImage, regClass, overClass , align, rows, nolink, onclick, onmouseover, onmouseout)
******************************************/
<?
$result = mysql_query("select * from front_menu where showmenu='Y' and authlevel<=$_SESSION[AuthLevel] order by sortorder") or die("SQL error");
IF $result IKKE ER TOM
echo "<script language=\"JavaScript\" type=\"text/javascript\">"
while ($result_row = mysql_fetch_array($result)){

echo "oCMenu.makeMenu('menu{$result_row[ID]}','".($result_row['parent']>0?"menu".$result_row['parent']:"")."','&nbsp;: $result_row[name]','".($result_row['type']=="nolink"?"":($result_row['type']=="link"?"$result_row[value]":"$mainscript?menuid=$result_row[ID]"))."','');\n";

}
?>
//Leave this line - it constructs the menu
oCMenu.construct();
<?
ELSE
echo"FEJL"
END
Avatar billede busschou Praktikant
05. august 2005 - 09:11 #16
der manglede jeg så </script>
Men altså så den enten genererer menuen eller skriver fejl :o)
og det uden at det er et eksternt dokument
Avatar billede -kenner- Nybegynder
05. august 2005 - 09:17 #17
Hvilken include skal jeg så fjerne?
Avatar billede -kenner- Nybegynder
05. august 2005 - 09:18 #18
Aha. Der er to filer der hedder det samme ;)

En der hedder coolmenus4_array.js.php og end er hedder coolmenus4_array.js
Avatar billede busschou Praktikant
05. august 2005 - 09:21 #19
ok så hvad gør du ? ;o)
Jeg ville nok stadig foreslå at midlertidig droppe den eksterne coolmenus4_array.js.php og sætte det ind på hovedsiden som herover, bare med de "rigtige" php ord
Avatar billede -kenner- Nybegynder
05. august 2005 - 09:22 #20
Så du er ASP Programmør?
Avatar billede busschou Praktikant
05. august 2005 - 09:26 #21
ja primært
Jeg ved da at php hedder det "if(noget){så}" altså med klammer, men jeg ved ikke så meget til hvordan man fx kan teste på "if($result)" og så er den true hvis $result ikke er tom
Avatar billede -kenner- Nybegynder
05. august 2005 - 09:28 #22
Linierne: //Leave this line - it constructs the menu
oCMenu.construct(); skal enten så i hvst der skal udskrives en menu, eller hvis der skal meldes fejl. Hvilken vil du have linierne i?

Kode:

<?
include("../constants.php");
database_open();
?>
/******************************************
Menu item creation:
myCoolMenu.makeMenu(name, parent_name, text, link, target, width, height, regImage, overImage, regClass, overClass , align, rows, nolink, onclick, onmouseover, onmouseout)
******************************************/
<?
$result = mysql_query("select * from front_menu where showmenu='Y' and authlevel<=$_SESSION[AuthLevel] order by sortorder") or die("SQL error");
if (!empty($result))
echo "<script language=\"JavaScript\" type=\"text/javascript\">";
while ($result_row = mysql_fetch_array($result)){

echo "oCMenu.makeMenu('menu{$result_row[ID]}','".($result_row['parent']>0?"menu".$result_row['parent']:"")."','&nbsp;: $result_row[name]','".($result_row['type']=="nolink"?"":($result_row['type']=="link"?"$result_row[value]":"$mainscript?menuid=$result_row[ID]"))."','');\n";

}
?>
//Leave this line - it constructs the menu
oCMenu.construct();
<?
else{
echo"FEJL";
}
?>
Avatar billede busschou Praktikant
05. august 2005 - 09:30 #23
sådan her med </script> også
---
<?
include("../constants.php");
database_open();
?>
/******************************************
Menu item creation:
myCoolMenu.makeMenu(name, parent_name, text, link, target, width, height, regImage, overImage, regClass, overClass , align, rows, nolink, onclick, onmouseover, onmouseout)
******************************************/
<?
$result = mysql_query("select * from front_menu where showmenu='Y' and authlevel<=$_SESSION[AuthLevel] order by sortorder") or die("SQL error");
if (!empty($result))
echo "<script language=\"JavaScript\" type=\"text/javascript\">";
while ($result_row = mysql_fetch_array($result)){

echo "oCMenu.makeMenu('menu{$result_row[ID]}','".($result_row['parent']>0?"menu".$result_row['parent']:"")."','&nbsp;: $result_row[name]','".($result_row['type']=="nolink"?"":($result_row['type']=="link"?"$result_row[value]":"$mainscript?menuid=$result_row[ID]"))."','');\n";

}
?>
//Leave this line - it constructs the menu
oCMenu.construct();
<?
echo "</script>";
else{
echo"FEJL";
}
?>
Avatar billede busschou Praktikant
05. august 2005 - 09:31 #24
hov der mangler da en overornet klamme
---
<?
include("../constants.php");
database_open();
?>
/******************************************
Menu item creation:
myCoolMenu.makeMenu(name, parent_name, text, link, target, width, height, regImage, overImage, regClass, overClass , align, rows, nolink, onclick, onmouseover, onmouseout)
******************************************/
<?
$result = mysql_query("select * from front_menu where showmenu='Y' and authlevel<=$_SESSION[AuthLevel] order by sortorder") or die("SQL error");
if (!empty($result)){
  echo "<script language=\"JavaScript\" type=\"text/javascript\">";
  while ($result_row = mysql_fetch_array($result)){
    echo "oCMenu.makeMenu('menu{$result_row[ID]}','".($result_row['parent']>0?"menu".$result_row['parent']:"")."','&nbsp;: $result_row[name]','".($result_row['type']=="nolink"?"":($result_row['type']=="link"?"$result_row[value]":"$mainscript?menuid=$result_row[ID]"))."','');\n";
  }
?>
//Leave this line - it constructs the menu
oCMenu.construct();
<?
  echo "</script>";
}else{
  echo"FEJL";
}
?>
Avatar billede -kenner- Nybegynder
05. august 2005 - 09:31 #25
Men linierne: //Leave this line - it constructs the menu
oCMenu.construct();

Skal være i en af klammerne.
Avatar billede busschou Praktikant
05. august 2005 - 09:33 #26
er den også kommet
Den skal kun laves hvis der er indhold i $result
Avatar billede -kenner- Nybegynder
05. august 2005 - 09:37 #27
Nu forsvinder den ikke, men den er ret malplaceret nu: http://www.rolsted-cykler.dk/index_hemlig.php
Avatar billede busschou Praktikant
05. august 2005 - 09:39 #28
jep hvis du kigger i kilden skyldes det nok de fejl medelelser der er kommet
Avatar billede busschou Praktikant
05. august 2005 - 09:42 #29
det må du kunne forstå bedst, det må være noget med dine php includeringer
i øvrigt skal den store udkomnentering /********* osv vel være inden for <? ?> afgrænsningen for ikke at spolere html´en?
Avatar billede -kenner- Nybegynder
05. august 2005 - 09:42 #30
Øhm. Hvordan fikser vi det?
Avatar billede -kenner- Nybegynder
05. august 2005 - 09:44 #31
Jeg bliver nød til at smutte, men prøv at finde en løsning på de fejl der :)
Avatar billede busschou Praktikant
05. august 2005 - 09:48 #32
den giver dig de her fejl
----
1)
main(): Unable to access ../constants.php in /net/users/a50/917/rolstedcyklerdk/www/index_hemlig.php on line 51

2)
main(../constants.php): failed to open stream: Permission denied in /net/users/a50/917/rolstedcyklerdk/www/index_hemlig.php on line 51

3)
main(): Failed opening '../constants.php' for inclusion (include_path='.:/usr/local/lib/php') in /net/users/a50/917/rolstedcyklerdk/www/index_hemlig.php on line 51
----
Det betyder jo nok noget med at den ikke kan åbne din constants.php
Det kunne jo skyldes at du includerer den med include("../constants.php") hvilket virkede fint da den før lå i et underbibliotek, nu skal det måske så snarere være include("constants.php") måske?
Men siden menuen virker kunne det tyde på at du allerede har includeret den for ellers ville du vel ikke kunne åbne databasen? og så er der jo ingen grund til at includere den to gange ;o)
Avatar billede busschou Praktikant
05. august 2005 - 09:50 #33
men det er gæt, da jeg ikke kender hele din struktur og ikke kender din php fil så jeg ikke ved hvad linje 51 er
MEn jeg tror det er et meget godt gæt
Og det ser for mig ud som om at menuen bliver hvor den er
Så jeg tror det virker så snart de fejl er væk :o)
Avatar billede -kenner- Nybegynder
05. august 2005 - 14:45 #34
Sådan :) Jeg fjernede ../ og så forsvandt fejlmeldignerne. Jeg kan i hvertfald ikke se dem i kilden, men tag et kig.

- Menuen sidder stadig lidt malplaceret, eller det er faktisk selve siden der gør det, da den skal helt op til toppen af skærmen.
Avatar billede busschou Praktikant
05. august 2005 - 15:08 #35
start med at fjern de linjer her
----
/******************************************
Menu item creation:
myCoolMenu.makeMenu(name, parent_name, text, link, target, width, height, regImage, overImage, regClass, overClass , align, rows, nolink, onclick, onmouseover, onmouseout)
******************************************/
Avatar billede busschou Praktikant
05. august 2005 - 15:09 #36
hvis du markerer med musen vil du nemlig kunne se at det er det som står øverst...og det skal det jo ikke, det er blot en kommentar
Evt kan du putte den ind i <? ?> så den kun står i php koden og ikke i html koden
Avatar billede -kenner- Nybegynder
06. august 2005 - 10:56 #37
Så virker det hele optimalt :) Tusind tak skal du have, smid et svar og få 200 velfortjente point ;D
Avatar billede busschou Praktikant
06. august 2005 - 10:58 #38
Det vil jeg gøre, godt det virker :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