---
title: "selecta rätt option efter omladdning av sida"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/125861-selecta-rätt-option-efter-omladdning-av-sida"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Calevan"
published: "2005-04-06T22:41:30.000Z"
updated: "2005-04-17T12:26:39.000Z"
replies: 17
views: 585
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/125861-selecta-rätt-option-efter-omladdning-av-sida"
---

# selecta rätt option efter omladdning av sida

## #1 — Calevan, 2005-04-06T22:41Z

Har en select-grej i ett formulär enligt nedan:

```
<select size="1" name="ar">
  <option selected>Alla år</option>
  <option>2003</option>
  <option>2004</option>
  <option>2005</option>
</select>
```

 

formuläret skickar besökaren till samma sida och det värde man valt används för att filtrera vilka år man ska få se. Men nu är det så att jag gärna vill att "selected" ska flyttas från "Alla år" till just det år man valt när man valt att filtrera. Hur kan jag göra detta? Går det på något smidigt sätt eller krävs asp kod?

tack!

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

## #2 — Guffa, 2005-04-07T00:05Z

Något smidigare sätt än asp-kod finns inte.

Ifall formuläret postas med method="get" så kan du plocka upp värdet ifrån querystring med javascript och använda det för att välja rätt option, men det blir ju knappast smidigare.

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

## #3 — icaaq, 2005-04-07T05:53Z

<http://www.webeye.nu/default2.asp?que=asp/default.asp&exec=asp/artiklar/asp_15.asp#regainform>

mv icaaq

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

## #4 — Calevan, 2005-04-07T07:03Z

tack!

så, svaret var så som jag trodde... man får göra en if-sats för varje val. om någon kommer på något smidigare sätt (jag vet inte alls hur) vore det väldans trevligt!

```
<%
strS = Request.Form("select")
%>
<form method="post">
<select name="select">
<option<%If strS = "Bil" Then Response.Write " Selected"%>>Bil</option>
<option<%If strS = "Båt" Then Response.Write " Selected"%>>Båt</option>
<option<%If strS = "Flyg" Then Response.Write " Selected"%>>Flyg</option>
</select>
<input type="submit" name="B1">
</form>
```

(flyttas till ASP?)

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

## #5 — Guffa, 2005-04-07T14:50Z

Du kan ju loopa ut värdena:

```
<%
strS = Request.Form("select")
astrItems = Array("Tåg", "Flyg", "Båt")
%>
<form method="post">
<select name="select">
<%
For lngItem = 0 to UBound(astrItems)
%><option<%If strS = astrItems(lngItem) Then Response.Write " Selected"%>><%=astrItems(lngItem)%></option><%
Next
%>
</select>
<input type="submit" name="B1">
</form>
```

"Tåg och flyg och båt
det bär iväg
en liten tripp till Rom och Paris
för vem som helst
men jag fick nej
med tåg och med flyg och båt
du kom så långt
så långt från mig"...

;)

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

## #6 — Calevan, 2005-04-07T20:18Z

kanon, det kör jag på!

(och väldigt fin liten dikt där sen också!)

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

## #7 — Palle, 2005-04-07T20:31Z

Flyttad från HTML, XHTML & CSS.

mvh Palle
Moderator webForum

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

## #8 — Guffa, 2005-04-07T20:49Z

Jag tyckte att det passade med lite Fläskkvartett. :)

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

## #9 — Palle, 2005-04-07T20:55Z

..eller så skapar du en liten asp-funktion som du lätt kan återanvända, ex.

```
[red]Function IsSelected(value, refvalue)
	value = LCase(trim(value))
	refvalue = LCase(trim(refvalue))
	If IsNumeric(value) AND IsNumeric(refvalue) Then
		value = Int(value)
		refvalue = Int(refvalue)
	End If
	If value = refvalue Then IsSelected = " selected=""selected"""
End Function

...

<% strArValue = Request.Form("ar") %>

<select size="1" name="ar">
  <option selected>Alla år</option>
  <option<%= IsSelected("2003",strArValue) %>>2003</option>
  <option<%= IsSelected("2004",strArValue) %>>2004</option>
  <option<%= IsSelected("2005",strArValue) %>>2005</option>
</select>[/red]
```

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

## #10 — Calevan, 2005-04-07T21:13Z

tack för flytten palle!

och tack för dit svar, ser tjusigt ut!

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

## #11 — Guffa, 2005-04-07T21:17Z

Får jag komma med lite korrigeringar...

Om du ändrar värdet på parametrar i funktionen så bör du deklarera dem som ByVal, annars kommer du att ändra värdet som du skickar in i funktionen.

Funktionen Int() gör ingen typkonvertering. Om du vill konvertera värdet bör du använda någon funktion som gör det. (Ifall du använder Int() så kommer värdet visserligen att konverteras till Double, men bara som en bieffekt eftersom Int() inte accepterar en sträng.)

Funktionen bör returnera något även när värdena inte är lika.

```
Function IsSelected(ByVal value, ByVal refvalue)
	value = LCase(Trim(value))
	refvalue = LCase(Trim(refvalue))
	If IsNumeric(value) AND IsNumeric(refvalue) Then
		value = CLng(value)
		refvalue = CLng(refvalue)
	End If
	If value = refvalue Then
		IsSelected = " selected=""selected"""
	Else
		IsSelected = ""
	End If
End Function
```

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

## #12 — Calevan, 2005-04-10T17:39Z

tack! det fungerar fint!

nu ska jag trimma det hela så åren som man kan välja på hämtas ur en tabell i databasen...

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

## #13 — @nders, 2005-04-10T17:43Z

> **Guffa skrev:**
>
> Om du ändrar värdet på parametrar i funktionen så bör du deklarera dem som ByVal, annars kommer du att ändra värdet som du skickar in i funktionen.

Nja, det där stämmer inte helt. I Visual Basic är det så, att ByRef är default. I VBScript, däremot, är det ByVal som antas så länge man inte anger ByRef.

Mvh

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

## #14 — Guffa, 2005-04-10T19:12Z

> **@nders skrev:**
>
> > **Guffa skrev:**
> >
> > Om du ändrar värdet på parametrar i funktionen så bör du deklarera dem som ByVal, annars kommer du att ändra värdet som du skickar in i funktionen.
>
> Nja, det där stämmer inte helt. I Visual Basic är det så, att ByRef är default. I VBScript, däremot, är det ByVal som antas så länge man inte anger ByRef.

Ett enkelt test visar att du har fel:

```
<%
Function Test(strText)
	strText = "beta"
End Function

Dim strMessage
strMessage = "alfa"

Call Test(strMessage)

Response.Write strMessage
%>
```

Koden skriver ut "beta".

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

## #15 — @nders, 2005-04-10T19:31Z

Hmm.

Ok, där fick jag lära mig ett och annat. Tack för det! :)

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

## #16 — fakenick!, 2005-04-16T22:55Z

okej, men nu har jag ett liknande problem som jag egentligen inte tycker borde vara ett problem!

jag loopar igenom några options: 

```

<option [B]<%=rs("id")%> = <%=request.querystring("id")%>[/B]

[B]<% if rs("id") = request.querystring("id") then %> selected<% end if %>[/B]

value="page.asp?p=contactform&id=<%=rs("id")%>&email=<%=rs("email")%>">__ decensy_<%=rs("nick")%></option>
```

detta får jag ut (så man börjar fundera lite på if-satsen): 

```

<option 3 = 7 value="page.asp?p=contactform&id=3">trala1</option>

<option 2 = 7 value="page.asp?p=contactform&id=2">trala2</option>

<option 7 = 7 value="page.asp?p=contactform&id=7">trala3</option>
```

som ni kan se så fattas (enligt mig) "selected" i det sista option:et.. eller kan man inte använda querystrings i if-satser?!?!?!??!!!??! det är säkert någon liten skitsak, men just nu verkar det hopplöst..... :)

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

## #17 — @nders, 2005-04-17T07:13Z

Klart man kan använda querystrings i if-satser, men man måste alltid se till att det man jämför är av samma typ.

```
if clng(rs("id")) = clng(request.querystring("id")) then
```

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

## #18 — fakenick!, 2005-04-17T12:26Z

tack så mycket.. :) 
enligt mig, som dock är aningens nybörjare på 
detta så borde första modellen fungerat.. men de 
verkar ju ganska logiskt att man måste ha 2 av samma 
typ för att få det att fungera.. 

tack för svaret @nders ;)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/125861-selecta-rätt-option-efter-omladdning-av-sida
