Hej på er! Jag använder nedanstående kod för att loopa ut en rekursiv meny som man kan "fälla ut".. (kolla på brostore.rainyday.nu för att se den i action).. Detta fungerar ju suuuper om man kör med frames.. Nu vill jag göra samma sak fast utan frames.. Jag vill ändra koden nedan så att, om querystringen KatID = 34 ex så är hela katalogträdet, från nr 34 "öppnat" om ni förstår vad jag menar.. Framesida eller inte. det funkar på samma sätt ändå. Hmm.. Njae.. lägg då även till querystringen som bestämmer vilken meny som ska vara öppnad i varje länk så är det löst ---- då måste förståss hämta in den oxå, men den koden borde redan finnas i frameslösningen ;-) Nej, det är ju inte löst i & med det.. menyn är ju fortfarande stängd när man laddar om... Du får nog posta all kod för sidan eftersom jag itne kan se vad felet är med den informationen som du gett. hmm.. gå in på www.datorprylar.com.. Det är den menyn som är till vänster.. du får lov att lägga på en querystring på varje länk som säger vilken folder som ska öppnas + i body-taggens event onLoad kalla på javascriptfunktionerna som styr menyn. Ngt liknande borde funka: Hej! Skapa en array där du lägger en liten struktur på menyn ser ut när man klickar. (den uppdateras varje gång man klickar på något i menyn osv) eller vänta lite.. ;)Klurigt problem med menyer!
Vet inte hur jag ska göra.. Sitter fast..
<code>
Function WriteTree(Parent, Unfolder, Times)
Set tree = Server.CreateObject("ADODB.Recordset")
tree.open "SELECT *,(SELECT COUNT(*) FROM Produkter_StrukturDB as SubMeny WHERE SubMeny.Parentid = Produkter_StrukturDB.id AND shopID = "& ShopID &") as SubMenus FROM Produkter_StrukturDB Where Produkter_StrukturDB.ParentID = " & Parent & " AND shopID = "& ShopID &" Order By Produkter_StrukturDB.Rubrik",Connect,adOpenStatic,adLockOptimistic
If Not Tree.EOF Then
Set fldID = tree("id")
Set fldNamn = tree("rubrik")
Set fldSubMenus = tree("SubMenus")
If Not Times = 0 Then
Response.Write vbcrlf&"<TABLE border=0 cellPadding=0 cellSpacing=0 id=folder"&Unfolder-1&" STYLE=display:none>"&vbcrlf
Else
Response.Write vbcrlf&"<TABLE border=0 cellPadding=0 cellSpacing=0>"&vbcrlf
End If
Do
vID = fldID
vText = fldNamn
vSubMenus = fldSubMenus
tree.MoveNext
If vSubMenus > 0 Then
If tree.EOF Then
response.write("<TR>"&vbcrlf&"<TD id=bild"&Unfolder&" WIDTH=15px background=bilder/LastSub.Gif OnClick=""UnFold('folder"&UnFolder&"');PicChange('bild"&UnFolder&"')"">"&vbcrlf&"</TD>")
Else
response.write("<TR>"&vbcrlf&"<TD id=bild"&Unfolder&" WIDTH=15px background=bilder/ItemSub.Gif OnClick=""UnFold('folder"&UnFolder&"');PicChange('bild"&UnFolder&"')"">"&vbcrlf&"</TD>")
End If
Else
If tree.EOF Then
response.write("<TR>"&vbcrlf&"<TD WIDTH=15px background=bilder/Last.Gif>"&vbcrlf&"</TD>")
Else
response.write("<TR>"&vbcrlf&"<TD WIDTH=15px background=bilder/Item.Gif>"&vbcrlf&"</TD>")
End If
End if
If vSubMenus > 0 Then
response.write("<td class=text valign=bottom>")
response.write(vbcrlf&"" & vText & "</td>"&vbcrlf)
response.write("</tr>"&vbcrlf)
Unfolder = Unfolder + 1
Else
response.write("<td class=text valign=bottom>")
response.write(vbcrlf&"" & vText & "</td>"&vbcrlf)
response.write("</tr>"&vbcrlf)
End If
If vSubMenus > 0 Then
If tree.EOF Then
response.write("<TR>"&vbcrlf&"<TD WIDTH=15px></TD>"&vbcrlf&"<TD>")
Else
response.write("<TR>"&vbcrlf&"<TD WIDTH=15px background=bilder/Line.Gif></TD>"&vbcrlf&"<TD>")
End IF
WriteTree vID, Unfolder, Times+1
response.write("</TD></TR>"&vbcrlf&vbcrlf)
End If
Loop Until tree.EOF
Response.Write "</TABLE>"
End If
End Function
<script language="javascript" type="text/javascript">
function UnFold(sObject)
{
ref = document.all[sObject].style;
if(ref.display == ''){
ref.display = 'none';
}else{
ref.display = '';
}
}
function PicChange(sBild)
{
ref = document.all[sBild];
if(ref.background == 'bilder/itemSubOpen.gif'){
ref.background = 'bilder/itemSub.gif'
}else{
ref.background = 'bilder/itemSubOpen.gif'
}
}
</script>
</code>
Detta är lite akut problem! ;)Sv: Klurigt problem med menyer!
Det du kanske får ändra är target i länkarna, ngt annat stort problem kan jag inte se
cya,
PatrikBSv: Klurigt problem med menyer!
När du går in på en produktsida, som annars laddades i mainframe, så kommer ju inte trädet vara "öppnat" om man laddar om den sida som trädet är i.. utan då får man gå igenom hela strukturen igen..Sv: Klurigt problem med menyer!
cya,
PatrikBSv: Klurigt problem med menyer!
Sv: Klurigt problem med menyer!
Det ska inte vara några problem att lyfta denna funktion, som egentligen är en sub eftersom den inte returnerar något, från en sida till en annan, frameslösningen eller inte.
cya,
PatrikBSv: Klurigt problem med menyer!
öppna några rader och ladda om framen, då förstår du hur jag menar.. för om man har både menyn och "innehållet" i samma "frame" så kommer ju menyn att laddas om, och då kommer den inte att vara "uppvikt" eller vad man ska säga..
Behöver alltså nåt som inte gömmer de som är "parent" menyer till den sida man är på.. Sv: Klurigt problem med menyer!
<%
strUnfold = Request.QueryString("unfold")
strPicChange = Request.QueryString("picchange")
%>
<body bgcolor="#FFFFFF" background="produktbilder/ovriga/0205/09_122029.gif" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" OnLoad="UnFold('<% =strUnfold%>');PicChange('<% =strPicChange%>')">
glöm ej att lägga på querystringsen på länkarna :o)
cya,
PatrikBSv: Klurigt problem med menyer!
Det svar du ger är ju bra, men en sak bara..
Om jag har ett träd så ser ju det ut såhär (siffrorna är ID numren)
1
|--2
|--3
|--4
| |--5
| |--6
etc..
om då sexan ligger med i querystringen, så syns ju den.. Men då måste ju fyran också öppnas.. Annars syns ju inget ändå..
Hänger du med?! Det jag behöver, är nåt i loopen som går "bakåt" och öppnar allt hela vägen till rooten.. Det är det jag fastnat på..Sv: Klurigt problem med menyer!
dvs..
om 1,2,3,4 är har gåtts igenom så finns dom i arrayn och när du då uppdaterar din sida så kan du i din onLoad funktion kolla igenom arrayn och visa menyn efter det som finns där..
hur detta kan blir prestanda mässigt är en annan fråga.. ;) Då kan du även ta bort alla anrop mot dina querystringar och bara hela tiden checka status på din array..
äru med?Sv: Klurigt problem med menyer!
ladda arrayn med det som finns i dina querystringar. givetivs.. ;)