webForumDet fria alternativet

Array-problem

1 svar · 150 visningar · startad av Skarre

SkarreMedlem sedan apr. 20012 427 inlägg
#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!

------------------
// Skarre

[Redigerat av Skarre den 20 dec 2001]

VideMedlem 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

------------------
Mostly Harmless

[Redigerat av Vide den 20 dec 2001]

129 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)