Array-problem

ASP

1 svar · 157 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
257 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)