Jag har ett litet problem med att lösa ett hierarktiskt menysystem, där alla 'öppnade' val ska finnas kvar då sidan laddas om... Jag skulle nog använda ASP eftersom skriptet redan innehåller det. Jag ska laborera lite får jag se vad jag lyckas åstadkomma! :) En mycket bättre lösning: använd ett frameset, lägg en "tom" frame överst på 0 i höjd den andra 100%. Den andra skall vara din hemsida. Den övre innehåller menyn I EN SPAN. I onLoad på den nedre: Kopiera över hela SPANENS innerHTML från den tomma framens span till sidan. Vid unload: Kopiera upp innerHTML till den tomma. Eftersom att den tomma aldrig laddas om så kommer menyn att fungera som du vill. Dessutom behöver sidorna bara onload/unload kod samt en span. Jag har beskrivit metoden som Onkelborg tipsade om lite utförligare i den andra tråden om menyer. Jag är nog för dum för att hålla på med det här...! :)Meny med 'minne'...?
Jag har hittat ett script på nätet, som visar/döljer de olika underalternativen.
Men det jag vill åstadkomma, är att om man öppnat ett alternativ, ska det forsätta vara öppet tills man själv stänger det (även om sidan laddas om)(dock inget krav om web-läsaren stängs).
Vet inte om detta går att lösa med cookies, eller om det finns något annat bra sätt...?!?
Eller kan man göra nåt' liknande i asp?
Koden ser ut enligt följande idag (den är lite rörig...):
------------------------------
<script language="javascript">
<!--
var Open = ""
var Closed = ""
function preload(){
if(document.images){
Open = new Image(16,16)
Closed = new Image(16,16)
Open.src = "http://<% =strServer %>/images/arrow_up.gif"
Closed.src = "http://<% =strServer %>/images/arrow_down.gif"
}
}
function showhide(what,what2){
if (what.style.display=='none'){
what.style.display='';
what2.src=Open.src
}
else{
what.style.display='none'
what2.src=Closed.src
}
}
-->
</script>
</head>
<body onload="preload()">
<span id="axe" onClick="showhide(axeoutline,axesign)" style="cursor:hand; font-Family:Verdana; font-weight:bold"><font style="text-decoration:none">
<img id="axesign" src="http://<% =strServer %>/images/arrow_down.gif" valign="bottom" width="16" height="16"> </font><font size="2"><sup>AXE</sup></font></span><br>
<span id="axeoutline" style="display:'none'">
Main<br>
Routines<br>
History/Survey<br>
</span>
<br>
<span id="trans" onClick="showhide(transoutline,transsign)" style="cursor:hand; font-Family:Verdana; font-weight:bold"><font style="text-decoration:none">
<img id="transsign" src="http://<% =strServer %>/images/arrow_down.gif" valign="bottom" width="16" height="16"> </font><font size="2"><sup>Transmission</sup></font></span><br>
<span id="transoutline" style="display:'none'">
Main<br>
</span>
<br>
------------------------------
Tacksam för hjälp!
TommySv: Meny med 'minne'...?
Ex: Open.src = "http://<% =strServer %>/images/arrow_up.gif"
Jag har inte analyserat scriptet och kan därför inte ge dig en koddump tillbaka men det du ska använda är Request.QueryString i ASP, för att skicka eller ta emot värden mellan olika sidor. Valda menyer kommer då omvandlas till värden och hamna i sidans adress. För att hantera flera olika värden så kan man använda en array som håller ordning på vilka menyer som ska vara öppna.
<code>
' Hämta värden
Dim menyVals()
menyVals = Split(request.querystring,"|")
' Lägga in värden
Dim stringVals
stringVals = Join(menuVals(), "|")
</code>
Syntaxen kanske inte stämmer eftersom det var ett tag sedan jag programmerade ASP men efter att du lagt in värden i "stringVals" så konkatenerar du in strängen i adressen.
//Mikael.NETSv: Meny med 'minne'...?
Jag tackar och bockar!
//TommySv: Meny med 'minne'...?
Sv: Meny med 'minne'...?
Sv: Meny med 'minne'...?
Jag får hålla med 'Mannen' i den andra tråden, om att det skulle underlätta om det fanns ett "färdigt" script/kod att kolla på...
...men det är väl så det är när man är en glad amatör! :)
Jag tror jag skulle fixa ASP-förslaget bättre, om jag lärde mig lite mer av JOIN/SPLIT.
Bland annat har jag inte riktigt kommit underfund med hur man tar bort ett av flera värden från en sådan sträng...
(t.ex. om man har värdena 1,3,4 i strängen, men vill ta bort 3 ur den...
är det REPLACE man ska använda då?)
Är det nån' som har en bra länk som beskriver hur dessa kommandon fungerar??
//T