webForumDet fria alternativet

Låsa select-meny.

ASP

8 svar · 417 visningar · startad av Salamana

Medlem sedan mars 2005158 inlägg
Frågan#1

Ursäkta om frågan e rörig...men jag gör ett försök!!

Sitter med en select-meny som visar veckor samt år.

Det jag vill är att när man valt exempelvis "V26 År 2006" så ska det man valt vara "selected" i select-menyn.

Alltså...väljer man vecka 26 och sedan klickar på menyn så ska man vara typ i mitten av select-menyn..

Gör man en vanlig "selected" så ligger den högst upp i menyn....det vill jag ej...man ska vara på den poistionen i menyn som man valt.

<form name="veckoVal">					
<select name="site" class="drop" onChange="formHandler()">	
<option selected value="vecka.asp"><%=ar%>&nbsp;V<%=vecka%></option>
<% 	
varVisaAntaletVeckor = 50
while i < varVisaAntaletVeckor 
%>				
<option class="<%=klass%>" value="vecka_med.asp?ar=<%=datePart("YYYY",dateAdd("WW",i,now) ) %>&vecka=<%=datePart("WW",dateAdd("WW",i,now) ) %>">
<%=datePart("YYYY",dateAdd("WW",i,now) ) %>&nbsp;V<%=datePart("WW",dateAdd("WW",i,now) ) %>
</option>
<% i = i + 1wend %> 	
</select>
</form>
Medlem sedan apr. 20031 660 inlägg
#2

HEJ!

Menar du efter postning av sidan? Isåfall kollar du med
if request.form("site")=i then response.write " selected"
och då blir den raden vald.

Är inte med riktigt hur och vad du får ut av din listbox; din tredje rad ligger utanför loopen, vilken även går till 50. Det finns alltid 52 veckor på ett år, ibland 53.

Medlem sedan mars 2005158 inlägg
#3

Det jag får ut är aktuellt veckonummer med årtal + kommande 49veckor.
Den visar alltid aktuell vecka + 49veckor...så passerade veckor försvinner.

Att göra så att en post blir selected är inga problem...
Problemet är det att väljer man vecka 26 så vill jag att posten vecka 26 ska bli selected...och att det ska ske där posten ligger...inte att selected visas högst upp i menyn.

När man valt i slectemenyn så skickas man tillbaka till samma sida hala tiden...byter bara ut vissa fält på sidan beroende på vilken vecka man valt.

Har kommit fram till att det får nog bli ett javascript för att kunna "låsa" en viss post i selectmenyn.

Medlem sedan apr. 20031 660 inlägg
#4

Jo, men är det inte tredje raden som gör att du får veckan just på första raden, och den blir vald eftersom det står selected?
<option selected value="vecka.asp"><%=ar%> V<%=vecka%></option>

50 v framåt, det kunde jag ju faktiskt listat ut själv, det är ju därför du har DateAdd.

Medlem sedan mars 2005158 inlägg
#5

Jo precis.... Så som koden e ovan blir det datum man valt "selected" och visas högst upp i menyn.

Det jag ville var att få så att det datum man valt blir selected på den plats i menyn som det visas....alltså inte högst upp som det blir när man sätter "selected".

Men det går nog endast att lösa med ngt javascript kan jag tänka mig...

Du råkar inte ligga på ngt sådant script:-) ???

Medlem sedan apr. 20031 660 inlägg
#6

Salamana skrev:

...
Du råkar inte ligga på ngt sådant script:-) ???

Det är ju det jag försökt förklara i mina två inlägg, radera den rad som markerar fel, lägg till request som i mitt första inlägg.

Eftersom första raden finns, markerar den, tas den bort, markerar den inte. Så enkelt är det!

Medlem sedan mars 2005158 inlägg
#7

Ursäkta..du hade delvis rätt i ditt första inlägg..jag aktiverade inte min hjärna tillräckligt.
Men nu e de löst enligt följande:

Variabeln "sel" skriver jag bara ut så blir det kanon..

<option <%=sel%> value="....
vardeAr = request.querystring("ar")
vardeVecka = request.querystring("vecka")
varde = vardeAr & vardeVecka

AR = datePart("YYYY",dateAdd("WW",i,now) )
VECKA = datePart("WW",dateAdd("WW",i,now) )
raknare = AR  & VECKA

If varde = raknare Then
sel = "selected"
Else
sel = ""
End If
Medlem sedan apr. 20031 660 inlägg
#8

Bra!

Men, borde det inte räcka med att jämföra veckorna, eftersom du endast loopar 50 veckor fram kommer det aldrig att komma fram två lika veckonummer.

Medlem sedan mars 2005158 inlägg
#9

Helt rätt...det räcker att jämföra veckorna så som det ser ut nu.

Men antalet veckor som ska visas e dock ej bestämt. Så om man ngn gång i framtiden ökar antalet veckor så har man säkrat....lätt att missa det senare.

Bättre att ta det säkra före det osäkra:-)

258 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)