webForumDet fria alternativet

Grrr...för många if-satser...:)

ASP

4 svar · 231 visningar · startad av Lukaspojken

Medlem sedan maj 20011 312 inlägg
Frågan#1

Jag gör en hämtning från databasen och ska ha in värdet "selected" i en input-option. Går detta är göra på något effektivare sätt?

	IF taskPriority = "Hög" THEN
		selectPriority1 = "selected"
	End if

	IF taskPriority = "Normal" THEN
		selectPriority2 = "selected"
	End if

	IF taskPriority = "Låg" THEN
		selectPriority3 = "selected"
	End if

Sen när jag ska använda det html formen så ser det ut så här:

					<SELECT NAME="taskPriority" class=mini>
					<option value="Hög" <% =selectPriority1 %>>Hög
					<option value="Normal" <% =selectPriority2 %>>Normal
					<option value="Låg" <% =selectPriority3 %>>Låg
					</OPTION>
					</SELECT>

Jag har tre sådana här Select till så det blir hiskligt många if-satser...

------------------
Alltid lär man sig något nytt varje dag...

Medlem sedan dec. 19992 085 inlägg
#2

Använd SELECT CASE kanske. Fast det blir väl nästan lika mkt kod ändå.

------------------
//M@rtin || Peachy.nu\\

ni taLar Bra laTiN

Medlem sedan dec. 19996 721 inlägg
#3

Själva if-blocket skriver man bättre

IF taskPriority = "Hög" THEN
selectPriority1 = "selected"
elseif taskPriority = "Normal" THEN
selectPriority2 = "selected"
elseif taskPriority = "Låg" THEN
selectPriority3 = "selected"
End if

Eller ännu hellre

Select Case taskPriority
Case "Hög"
selectPriority1 = "selected"
Case "Normal"
selectPriority2 = "selected"
Case "Låg" 
selectPriority3 = "selected"
End Select
Medlem sedan maj 20011 312 inlägg
#4

Tack...det var lite bättre struktur på koden...

------------------
Alltid lär man sig något nytt varje dag...

Medlem sedan juli 20011 129 inlägg
#5

Enklast med loop!

dim arrLevels(3)

arrLevels(1) = "Hög"
arrLevels(2) = "Normal"
arrLevels(3) = "Låg"

For cLoop = 1 To UBound(arrLevels)

If taskPriority = arrLevels(cLoop) Then
  Selected = "Selected"
Else
  Selected = ""
End If
%>
<Option Value="<%= arrLevels(cLoop)%>" <%= Selected%>><%= arrLevels(cLoop)%></Option>
<%
Next

Det är så jag brukar göra med markering i rullister :)

[r]Heh... Så att det inte sparde så mycket kod! :e Men det blir bättre om man har mer än 3 olika val, bara öka stoleken på array:en och så är det klart! :)

------------------
Say hello to my stinky little friend!

[Redigerat av Koplik den 17 aug 2001]

260 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)