Toon posts:

[ASP/VBscript] uitlezen van een array vanuit een formulier

Pagina: 1
Acties:
  • 225 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
In PHP maakte ik weleens gebruik van

HTML:
1
2
<input type="text" name="val[]" />
<input type="text" name="val[]" />

Hierdoor kon ik meerdere dezelfde regels invullen en deze als een array uitlezen.

Nu probeer ik dit in ASP/VBscript te doen, maar het lijkterop dat deze er anders mee omgaat. Ik krijg een string terug waarin alle waarde dmv een komma aan elkaar zijn geplakt

ASP.NET Visual Basic:
1
response.write Request.Form("val[]")


Een optie zou zijn om een spli op een komma te zetten. Maar... daar kan ik niks mee, want als ik die split op een komma kan ik er wel een array van bouwen, maar als er binnen die tekst vanuit één van de twee tekstvelden ook een komma wordt gebruikt, wordt mn hele plannetje onderuit geschopt... dus geen optie...

Heeft iemand hier weleens wat leuks op verzonnen of is dat op deze manier niet mogelijk....

[ Voor 251% gewijzigd door Verwijderd op 17-11-2003 15:15 ]


Verwijderd

wat je kan doen is het volgende:
-genereer je htm code dynamisch met "naam" & i
-request deze in je request.form door request.form("naam" & i)

Is eigenlijk niet een antwoord op je vraag maar zo lukt het oko

Verwijderd

Topicstarter
Das een mogelijkheid die ik ook al werkend had, maar dat is idd niet de oplossing op de eigenlijke vraag...

Toch nog ff een edit:

Waarom wil ik dit?
als dit mogelijk blijkt is het voor mij veel eenvoudiger mooie en dynamische formulieren op te bouwen. Ik hoef alleen maar een loop te doorlopen van een aantal variabele. Dat kan ook als ik de velden val0, val1, val2, val3 etc noem, maar een mooi bijkomend voordeel is dat ik dynamisch clientside nieuwe invoerregels toevoer..., dan hoef ik alleen maar een regel te clonen en te kopieëren zonder te letten op id's e.d.

[ Voor 69% gewijzigd door Verwijderd op 17-11-2003 14:02 ]


Verwijderd

Als ik het goed begrijp wil je dynamisch formulieren creeëren (?) met behulp van een array waar je de verschillende velden (of naam van elke input) in definieert?

Verwijderd

Verwijderd schreef op 17 november 2003 @ 14:36:
Als ik het goed begrijp wil je dynamisch formulieren creeëren (?) met behulp van een array waar je de verschillende velden (of naam van elke input) in definieert?
Als dit zo is is het volgens mij zo op te lossen:

<%

For i = 0 to UBound(Array_Name) '// UBound geeft het aantal velden waar het array uit bestaat weer.

Response.Write("<INPUT='text' NAME= ' " & Array_Name(i) & " ' >")

Next

%>

Verwijderd

Topicstarter
dus niet...

Type mismatch: 'UBound'

Blijkbaar trektie het niet binnen als array, maar als string waarbij die ze allemaal aan elkaar plakt met een , er tussen...

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 08:46

pistole

Frutter

Verwijderd schreef op 17 november 2003 @ 10:45:
ASP.NET Visual Basic:
1
response.write request.form("val[]")
Maak er eerst een array van:
ASP.NET Visual Basic:
1
arrVal=split(request.form("val[]", ",")

en dan erdoorheen loopen
ASP.NET Visual Basic:
1
2
3
for i=lbound(arrVal) to ubound(arrVal)
   response.write arrVal(i)
next

En natuurlijk wel wat error checking enzo inbouwen...

[ Voor 10% gewijzigd door pistole op 17-11-2003 15:03 ]

Ik frut, dus ik epibreer


Verwijderd

Topicstarter
Daar kan ik niks mee, want als ik die split op een komma kan ik er wel een array van bouwen, maar als er binnen die tekst vanuit één van de twee tekstvelden ook een komma wordt gebruikt, wordt mn hele plannetje onderuit geschopt...
Dat had ik zelf ook al bedacht, maar gaat dus niets worden... aangezien ik niet kan checken of er een komma in een veld is geplaatst. OK dat kan ik clientside oplossen, maar dan is mn theorie wat betreft het simpel gebruik van meerdere regels toevoegen onderuit gehaald aangezien ik dan binnen het formulier alles moet gaan controleren op komma's en dat wil ik niet. Dan zijn er wel betere ideeën te verzinnen.

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 08:46

pistole

Frutter

Verwijderd schreef op 17 november 2003 @ 15:09:
[...]


Dat had ik zelf ook al bedacht, maar gaat dus niets worden... aangezien ik niet kan checken of er een komma in een veld is geplaatst. OK dat kan ik clientside oplossen, maar dan is mn theorie wat betreft het simpel gebruik van meerdere regels toevoegen onderuit gehaald aangezien ik dan binnen het formulier alles moet gaan controleren op komma's en dat wil ik niet. Dan zijn er wel betere ideeën te verzinnen.
In het kader van KISS (keep it simple, stupid) zou je dan
-OF form fields met verschillende namen moeten kiezen (oplossing met tellertje is gegeven)
-OF client-side bij onsubmit iets leuks moeten doen (velden aanelkaar plakken met zelfbedachte delimiter) en server-side gaan splitten

* pistole zou dan voor de teller methode gaan (input type=text name="bla" & teller)

[ Voor 6% gewijzigd door pistole op 17-11-2003 15:31 ]

Ik frut, dus ik epibreer


Verwijderd

Topicstarter
/me gaat dan ook maar voor de methode met de teller in de name...
ASP.NET Visual Basic:
1
2
3
4
5
For i = 1 to Request.Form.Count
    If instr(Request.Form.Key(i), "val") And Len(Request.Form.Item(i)) > 0 Then
        response.write Request.Form.Item(i) & "<br />"
    End If
Next


Met bovenstaande methode is er dus wel uit te komen waarbij je uitgaat van name's zoals val0, val1, val2 ...

In ieder geval iedereen wederom bedankt voor de ideeën!
Pagina: 1