---
title: "If...ElseIf"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/163202-if-elseif"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "devotion"
published: "2007-08-05T19:31:33.000Z"
updated: "2007-08-10T21:12:37.000Z"
replies: 11
views: 644
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/163202-if-elseif"
---

# If...ElseIf

## #1 — devotion, 2007-08-05T19:31Z

:h 

Hepp på er i sommarnatten!   :) 

Jag har knåpat ihop nedanstående:

```
while not RsVehicle.EOF
		
			sVehicleName=RsVehicle("Name")
			sVehicleNr=RsVehicle("Nr")
			
			If g_ListVehicleListType = 0 then
					sListType=sVehicleNr
				Elseif g_ListVehicleListType = 1 then
						sListType=sVehicleName
					Else
						sListType=sVehicleName & " - " & sVehicleNr
			End If
			
			s=s & "<option value='" & sVehicleName & "'"
			if sVehicleName=par_vehicle then s=s& " selected"
			s=s & ">" & sListType & "</option>"
			if sVehicleName=par_vehicle then par_vehicle_id=sVehicleId
			if sVehicleName=par_vehicle then par_vehicle_nr=sVehicleNr
			RsVehicle.MoveNext
		wend
```

Kan man optimera detta, eller göra det snyggare? Det funkar som det är tänkt, men jag är lite ringrostig.

Det jag mest tänker på är If..ElseIf-satsen...

Mvh
Henrik

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

## #2 — emission, 2007-08-05T20:16Z

Det ser bra ut.

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

## #3 — devotion, 2007-08-05T20:19Z

Säger du det så....  :)  

Mvh
Henrik

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

## #4 — devotion, 2007-08-05T20:33Z

Men..... ;)  

Nu ser koden ut så här:

```
dim g_ListVehicleSortOrder
dim g_ListVehicleSortType
dim g_ListVehicleListType

'Sorteringsordning. "ASC"=stigande, "DESC"=fallande
g_ListVehicleSortOrder = "ASC"

'Väljer hur resurserna ska sorteras i listmenyn. 1=Namn, 2=Nummer
g_ListVehicleSortType = 2

'Variabeln; g_ListVehicleListType styr vad som skall visas listmenyn. 0=registreringsnummer, 1=namn, 2=registreringsnummer och namn
g_ListVehicleListType = 2

'Funktion för att ange sorteringstyp
dim listVehicleSortType
listVehicleSortType = "[tblResource].[Name] "
If g_ListVehicleSortType <> 1 Then listVehicleSortType = "[tblResource].[Nr] " End if

...

' Hitta resurser som har loggposter
    	sSQLVehicle="SELECT DISTINCT [tblResource].[Id], [tblResource].[Nr], [tblResource].[Name]" _
    	& " FROM tblResource INNER JOIN tblResourceLog ON [tblResource].[Id] = [tblResourceLog].[ResourceId]" _
    	& " GROUP BY [tblResource].[Id], [tblResource].[Nr], [tblResource].[Name], [tblResource].[LogUnit]" _
    	& " HAVING ([tblResource].[LogUnit])='km' OR ([tblResource].[LogUnit])='mil'" _
    	& " ORDER BY " & g_ListVehicleSortType & g_ListVehicleSortOrder 
		
		s="<option>--- Fordon ---</option>"
		
		RsVehicle.Open sSQLVehicle, Conn, 1
		while not RsVehicle.EOF
		
			sVehicleName=RsVehicle("Name")
			sVehicleNr=RsVehicle("Nr")
			
			If g_ListVehicleListType = 0 then
					sListType=sVehicleNr
				Elseif g_ListVehicleListType = 1 then
						sListType=sVehicleName
					Else
						
						sListType=sVehicleName & " - " & sVehicleNr
						If g_ListVehicleSortType <> 1 Then sListType = sVehicleNr & " - " & sVehicleName End if
			End If
			
			s=s & "<option value='" & sVehicleName & "'"
			if sVehicleName=par_vehicle then s=s& " selected"
			s=s & ">" & sListType & "</option>"
			if sVehicleName=par_vehicle then par_vehicle_id=sVehicleId
			if sVehicleName=par_vehicle then par_vehicle_nr=sVehicleNr
			RsVehicle.MoveNext
		wend
```

Det fungerar fortfarande som det är tänkt, att man kan sätta olika värden på variablerna och på så sätt ändra hur listmenyn byggs upp, men går det inte göra snyggare?  :)  

Mvh
Henrik

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

## #5 — emission, 2007-08-05T20:45Z

Nej, det är helt OK. Det enda jag skulle vilja ändra på är 

```
If g_ListVehicleSortType <> 1 Then listVehicleSortType = "[tblResource].[Nr] " End if
```

Ta bort "End if". Behövs inte på enradssatser.

Skulle också gärna se att du gör om g_ListVehicleSortType till det riktiga kolumnnamnet (eventuellt efter att man själv valt med en siffra).

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

## #6 — devotion, 2007-08-05T20:49Z

> **emission skrev:**
>
> Ta bort "End if". Behövs inte på enradssatser.

Just det.... Done!  :)  

> **emission skrev:**
>
> Skulle också gärna se att du gör om g_ListVehicleSortType till det riktiga kolumnnamnet (eventuellt efter att man själv valt med en siffra).

Jag är trött och fattar inte riktigt hur du menar...  :r 

Mvh
Henrik

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

## #7 — emission, 2007-08-05T21:18Z

> **devotion skrev:**
>
> Jag är trött och fattar inte riktigt hur du menar...  :r

Då får du vila upp dig.

Det jag menar att det är onödigt och lite förändringskänsligt att ange sorteringsordningen med kolumnnumret, i stället för kolumnnamnet.

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

## #8 — devotion, 2007-08-06T04:28Z

aha! :) 

Okidoki, jag fattar!

//Henrik

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

## #9 — Erik Juhlin, 2007-08-08T09:36Z

Indenteringen på din If är lite tokig. Så här blir bättre:

```
			If g_ListVehicleListType = 0 then
				sListType=sVehicleNr
			Elseif g_ListVehicleListType = 1 then
				sListType=sVehicleName
			Else
				sListType=sVehicleName & " - " & sVehicleNr
			End If
```

Om dina variabler inte är variabla utan konstanta så kan du ange dem som konstanter istället.

```
Const g_ListVehicleSortType = 2
```

Sen att inte göra någon HTMLEncode på sVehicleName kan öppna upp för Cross Site Scripting säkerhetshål.

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

## #10 — devotion, 2007-08-08T14:19Z

> **Erik Juhlin skrev:**
>
> Indenteringen på din If är lite tokig. Så här blir bättre:
>
>
> ```
> 			If g_ListVehicleListType = 0 then
> 				sListType=sVehicleNr
> 			Elseif g_ListVehicleListType = 1 then
> 				sListType=sVehicleName
> 			Else
> 				sListType=sVehicleName & " - " & sVehicleNr
> 			End If
> ```

Ja, lite snyggare...  :)  

> **Erik Juhlin skrev:**
>
> Sen att inte göra någon HTMLEncode på sVehicleName kan öppna upp för Cross Site Scripting säkerhetshål.

Hmmm, skulle du kunna utveckla det lite?  :)  

Mvh
Henrik

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

## #11 — Erik Juhlin, 2007-08-08T15:27Z

Om det finns möjlighet för användaren att ange vehicle name på något sätt så skulle det vara möjligt att mixtra med cookies och annat för andra användare.
Sen så skulle det bugga ur så fort en vehicle name har ett ' tecken.

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

## #12 — devotion, 2007-08-10T21:12Z

Tänkvärt! :)

Tack! :bire

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/163202-if-elseif
