webForumDet fria alternativet

Bolla en tanke...

ASP

3 svar · 170 visningar · startad av Vide

Medlem sedan dec. 19998 577 inlägg
Frågan#1

Kan man på något smidigt sätt göra om flera Request's till en array, typ:

For each xxx in Request.Form.contents
i = i + 1
MyArray(i) = Request.Form.value

Next

... Nu ser ju detta lite konstigt ut, men ni förstår säkert principen.

------------------
        )|(
       (o o)
-oo0-(_)-0oo-----
webeye.nu *hem*
vide@4sale.se

Medlem sedan feb. 20001 590 inlägg
#2

Jo, det borde funka.
Man får se till att utöka arrayen dynamiskt, med Ubound(). Även se till att den inte blir för stor.

/T

Medlem sedan dec. 19998 577 inlägg
#3

Hittade ett exempel på det i Professional ActiveServerPages 3.0:

For each objitem in Request.Form

If Request.Form(objitem).count > 1 then

For initloop = 1 To Request.Form(objitem).count
MyArray(initloop) = Request.Form(objItem)(initloop)
Next

Else
MyArray(1) = Request.Form(objItem)
End If
Next

.. den här koden kolla samtidigt om det finns flera värden i en 'collection'...

------------------
        )|(
       (o o)
-oo0-(_)-0oo-----
webeye.nu *hem*
vide@4sale.se

Medlem sedan dec. 1999707 inlägg
#4

Ja, koden ser ganska bra ut. Det jag är tveksam till är dimensioneringen av arrayen. Jag skulle nog löst det genom att lägga det i en sträng och split:at den:


Dim vaFormValues
Dim sItm, sFormValues
Dim i

For Each sItm in Request.Form
  If Request.Form(sItm).Count > 1 then
   For i = 1 To Request.Form(sItm).Count
    sFormValues = sFormValues & Request.Form(sItm)(i) & ";"
  Next

  Else
    sFormValues = sFormValues & Request.Form(sItm) & ";"
  End If
Next

vaFormValues = Split(sFormValues, ";")

------------------
/ Torbjörn Hansson, webbutvecklare/gränssnittsprogrammerare
Spetsdata AB

259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)