[ASP classic] Form met array - keys ook belangrijk

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
Ik heb de volgende HTML:

HTML:
1
<input name="henkie[1]" value="peop" /><input name="henkie[4]" value="prut5" />...etc..


Nou was ik gewend dat PHP netjes een array terug gaf op $_POST['henkie'], maar in ASP werkt dat niet. OK, geen ramp, is wel omheen te werken. Alleen ge/misbruikte ik die indexnummers (1, 4) om mijn ID's in op te slaan, zodat ik wist bij welke regel in de db die waarde van de variabele $henkie hoorde.

Hoe doe ik dat in ASP?

------------------

Ik ben er intussen achter dat form items waarschijnlijk altijd in dezelfde volgorde binnen komen, en dat een hidden id veld dus altijd bij de daar op volgende andere velden zal horen. En dan kun je een indexloze array posten die je dan weer uit elkaar kunt trekken en als het even mee zit hoort alles bij elkaar.

Maar is er geen zekere manier?

[ Voor 28% gewijzigd door BikkelZ op 04-12-2007 09:38 ]

iOS developer


Acties:
  • 0 Henk 'm!

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
je form velden zijn niet gegarandeerd dat ze binnen komen in dezelfde volgorde.

http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=64

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


Acties:
  • 0 Henk 'm!

  • Milt
  • Registratie: Februari 2005
  • Laatst online: 06-07-2024
Er zijn verschillende oplossingen mogelijk. Je krijgt de velden altijd terug in de volgorde zoals ze zijn gepost. Velden met dezelfde naam kun je gewoon als array benaderen, bijvoorbeeld:

Visual Basic .NET:
1
2
Request.Form("id")(2)
Request.Form("henkie")(2)

Visual Basic .NET:
1
2
3
4
For i = 1 To Request.Form("id").Count
    ID = Request.Form("id")(i)
    Value = Request.Form("henkie")(i)
Next

Dus als je achter ieder henkie veld ook een hidden ID veld zet, dan hoort gegarandeerd ("id")(2) ook bij ("henkie")(2).

Een oplossing die ik nog wel eens toepas is:

HTML:
1
2
3
<input type="text" name="henkie_1" value="iets1" /><input type="hidden" name="id" value="1" />
<input type="text" name="henkie_4" value="prut4" /><input type="hidden" name="id" value="4" />
<input type="text" name="henkie_5" value="onzin5" /><input type="hidden" name="id" value="5" />

Visual Basic .NET:
1
2
3
4
For i = 1 To Request.Form("id").Count
    ID = Request.Form("id")(i)
    Value = Request.Form("henkie_" & CStr(i))
Next

Dit geeft iets meer zekerheid dat je de juiste value krijgt bij een bepaalde ID.

Acties:
  • 0 Henk 'm!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
Milt -> mooier dan dat gaat het waarschijnlijk niet worden....:(
4of9 schreef op dinsdag 04 december 2007 @ 10:31:
je form velden zijn niet gegarandeerd dat ze binnen komen in dezelfde volgorde.

http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=64
*zucht*

Dit is toch wel erg :'(

[ Voor 10% gewijzigd door BikkelZ op 04-12-2007 11:02 ]

iOS developer