---
title: "Dynamiskt antal år"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/144577-dynamiskt-antal-år"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "devotion"
published: "2006-03-25T21:56:11.000Z"
updated: "2006-03-26T10:21:38.000Z"
replies: 11
views: 414
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/144577-dynamiskt-antal-år"
---

# Dynamiskt antal år

## #1 — devotion, 2006-03-25T21:56Z

:h 
Tja!

Hur får jag till en kod som listar upp ett antal årtal i en listmeny beroende på det intervall man valt och även selectar aktuellt år?

Ex jag vill att de senaste 3 åren ska vara med och 2006 ska väljas eftersom det är aktuellt år.

Då skulle den generarade koden se ut så här:

```
          <select name="selectYear" class="listmeny" onChange="this.form.submit();">
            <option value="2004">2004</option>
            <option value="2005">2005</option>
            <option value="2006" selected>2006</option>
          </select>
```

Mvh
Henrik

Permalänk: https://www.webforum.nu/p/144577

## #2 — Erik Juhlin, 2006-03-25T21:59Z

```
<select name="selectYear" class="listmeny" onChange="this.form.submit();">
<%
For i = Year(Now) - 2 To Year(Now)
	%>
	<option value="<%=i%>"<%If i = Year(Now) Then Response.Write " selected"%>><%=i%></option><%
Next 'i
%>
</select>
```

Permalänk: https://www.webforum.nu/p/1787374

## #3 — devotion, 2006-03-25T22:01Z

Weeee!

Tackar!   ;) 

//Henrik

Permalänk: https://www.webforum.nu/p/1787376

## #4 — devotion, 2006-03-25T22:11Z

Det fungerar ju...

Men jag skulle vilja få till det att när man ändrar i listmenyn, och därmed submittar, så vill jag att det årtal man valt stannar kvar.

Testade med:

```
<option value="<%=i%>"<%If i = Year(Now) or i = request("selectYear") Then Response.Write "selected"%>><%=i%></option>
```

Men det fungerade inte. Det hoppade tillbaka till 2006... :(  

//Henrik

Permalänk: https://www.webforum.nu/p/1787378

## #5 — emission, 2006-03-25T22:54Z

Lagra målvärdet innan, och jämför med det

```
theYear=request("selectYear") 
if theYear="" then theYear=Year(Now)
```

Permalänk: https://www.webforum.nu/p/1787384

## #6 — devotion, 2006-03-26T07:14Z

Okej!

Hmmm..
Testade med:

```
theYear = request("selectYear")

if theYear= "" then theYear = Year(Now)
```

...

```
<select name="selectYear" class="listmeny" onChange="this.form.submit();">
				<%
				For i = Year(Now) - 2 To Year(Now)
					%>
					<option value="<%=i%>"<%If i = theYear Then Response.Write "selected"%>><%=i%></option><%
				Next
				%>
			</select>
```

Men det vill sig inte... Om jag bytter år, dvs submittar så stannar året inte kvar...

Vad har jag gjort för fel?

//Henrik

Permalänk: https://www.webforum.nu/p/1787413

## #7 — devotion, 2006-03-26T09:25Z

Hej!
Efter lite pillande så fick jag det att fungera typkonverterade det jag jämförde till en sträng:

```
<option value="<% =i %>"<% If cstr(i) = cstr(theYear) Then Response.Write "selected" %>><% =i %></option>
```

Jag har därför förstått att jag jämförde päron med äpplen....  Men är detta rätt sätt att gå, eller ska jag göra på något annat, bättre sätt? Det fungerar ju nu visserligen...

//Henrik

Permalänk: https://www.webforum.nu/p/1787430

## #8 — emission, 2006-03-26T09:45Z

Rätt

Permalänk: https://www.webforum.nu/p/1787435

## #9 — devotion, 2006-03-26T09:48Z

Okidoki :D  

Då kör jag på det!

//Henrik

Permalänk: https://www.webforum.nu/p/1787436

## #10 — devotion, 2006-03-26T09:51Z

Följande kod blev det till slut:

```
theYear = request("selectYear")

if theYear= "" then theYear = Year(Now)

...

		  	<select name="selectYear" class="listmeny" onChange="this.form.submit();">
				<%
				For i = Year(Now) - 2 To Year(Now)
					%>
					<option value="<% =i %>"<% If cstr(i) = cstr(theYear) Then Response.Write "selected" %>><% =i %></option><%
				Next
				%>
			</select>
```

Henrik

Permalänk: https://www.webforum.nu/p/1787437

## #11 — Erik Juhlin, 2006-03-26T10:06Z

När det faktiskt är siffror så är det bara onödigt och fult att göra strängjämförelser.

```
theYear = request("selectYear")
if theYear = "" then theYear = Year(Now)
theYear = CLng(theYear)
...
<select name="selectYear" class="listmeny" onChange="this.form.submit();">
<%
For i = Year(Now) - 2 To Year(Now)
	%>
	<option value="<% =i %>"<% If i = theYear Then Response.Write " selected" %>><% =i %></option><%
Next
%>
</select>
```

Eller ännu hellre:

```
'i din util fil
Function Coalesce(Value1, Value2)
	If Trim(Value1 & "") <> "" Then
		Coalesce = Value1
	ElseIf Trim(Value2 & "") <> "" Then
		Coalesce = Value2
	End If
End Function

'sidan där util filen är inkluderad
theYear = CLng( Coalesce(request("selectYear"), Year(Now)) )
...
<select name="selectYear" class="listmeny" onChange="this.form.submit();">
<%
For i = Year(Now) - 2 To Year(Now)
	%>
	<option value="<% =i %>"<% If i = theYear Then Response.Write " selected" %>><% =i %></option><%
Next
%>
</select>
```

Permalänk: https://www.webforum.nu/p/1787443

## #12 — devotion, 2006-03-26T10:21Z

Aha!

Okej!

Jag ska testa det också!

//Henrik

Permalänk: https://www.webforum.nu/p/1787453

---

Tråden på webben: https://www.webforum.nu/amne/asp/144577-dynamiskt-antal-år
