webForumDet fria alternativet
Logga in / Bli medlem

Array-problem

ASP

1 svar · 150 visningar · startad av Skarre

Medlem sedan apr. 20012 427 inlägg
Trådstart#1

Jag tänkte använda nedanstående kod till att lägga in tre alternativ (till en fråga i en annan tabell) i en tabell.

arrAlt = Split(Request.Form("Alternative"), ",")
arrCorrect = Split(Request.Form("Correct"), ",")

For i = 0 To UBound(arrAlt)
objConn.Execute("INSERT INTO tblAlternatives (QID, Correct, Alternative) VALUES (" & intIdent & ", " & CBool(arrCorrect(i)) & ", '" & arrAlt(i) & "')")
Next

Request.Form("Alternative") är tre textboxar som innehåller själva texten för alternativen, och Request.Form("Correct") är tre radioknappar som anger vilket av alternativen som är det rätta. Problemet i loopen är att den blir "Out of range" eftersom den i sin andra iteration försöker den hämta arrCorrect(1) som inte finns eftersom det inte följer med något värde om en radioknapp är tom och arrCorrect således endast innehåller ett index.

Hur ska jag lösa detta?

Tacksam för hjälp!

Medlem sedan dec. 19998 577 inlägg
#2

En liten if-sats borde väl räcka:

arrAlt = Split(Request.Form("Alternative"), ",")
arrCorrect = Split(Request.Form("Correct"), ",")
For i = 0 To UBound(arrAlt)
[b]if ubound( arrCorrect ) < i then exit for[/b]
objConn.Execute("INSERT INTO tblAlternatives (QID, Correct, Alternative) VALUES (" & intIdent & ", " & CBool(arrCorrect(i)) & ", '" & arrAlt(i) & "')")
Next

Detta är ju om dom alltid skall vara lika till antalet, annars får du lägga värdet av arrCorrect i en variabel:

arrAlt = Split(Request.Form("Alternative"), ",")
arrCorrect = Split(Request.Form("Correct"), ",")
For i = 0 To UBound(arrAlt)
[b]if ubound( arrCorrect ) >= i then
varCorrect = arrCorrect(i))
else
varCorrect = ""
end if[/b]
objConn.Execute("INSERT INTO tblAlternatives (QID, Correct, Alternative) VALUES (" & intIdent & ", " & CBool(varCorrect) & ", '" & arrAlt(i) & "')")
Next
264 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)