[ASP] array waardes uit formulier halen

Pagina: 1
Acties:

  • _Johannn_
  • Registratie: Februari 2004
  • Laatst online: 08-05 06:24
Ik heb een array gemaakt, met in die array staan alle namen van de velden uit het formulier.

nu wil ik dit doen: request.form(array(0)) maar dan krijg ik de fout dat hij een constante tekenreeks verwacht.

Cstr(array(0)) werkt ook niet.

test = TypeName(array(0)) dan bevat test de waarde "variant()"

iemand een idee hoe ik dit kan oplossen?

Verwijderd

_Johannn_ schreef op 25 februari 2004 @ 16:17:
Ik heb een array gemaakt, met in die array staan alle namen van de velden uit het formulier.

nu wil ik dit doen: request.form(array(0)) maar dan krijg ik de fout dat hij een constante tekenreeks verwacht.

Cstr(array(0)) werkt ook niet.

test = TypeName(array(0)) dan bevat test de waarde "variant()"

iemand een idee hoe ik dit kan oplossen?
test of de array wel echt gevuld is, door te kijken of array(0) wel echt een waarde bevat. Doe es een response.write array(0), of beter nog, loop door je hele array heen. Dan zie je of de resultaten zijn wat je er van verwacht. Dat statement is sowieso erg handig om te debuggen. ZEKER weten dat een variabele gevuld is...

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Request.Form.Item(index) is het volgens mij

Oops! Google Chrome could not find www.rijks%20museum.nl


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 23:30

NMe

Quia Ego Sic Dico.

Je hebt toch wel een andere variabelenaam voor die array dan "array" he? Want array is een reserved word van ASP.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • _Johannn_
  • Registratie: Februari 2004
  • Laatst online: 08-05 06:24
P_de_B schreef op 25 februari 2004 @ 16:29:
Request.Form.Item(index) is het volgens mij
Bedankt, dit werkt.

@NMe84 ja ik heb er een andere naam voor gebruikt.

  • UniCache2
  • Registratie: Januari 2001
  • Laatst online: 02-03 09:30
Als je gewoon een hidden field maakt met alle veldnamen comma delimited kan je in je vervolg pagina het volgende doen:

code:
1
test = Split(Request.Form("jehiddenfieldnaam"), ",")


edit: excuus verkeerd gelezen..

[ Voor 15% gewijzigd door UniCache2 op 25-02-2004 16:36 ]


  • _Johannn_
  • Registratie: Februari 2004
  • Laatst online: 08-05 06:24
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<% 
            if request.form("clientnummer") <> "" AND request.form("clientnaam") <> "" AND request.form("CRMnaam") <> "" AND request.form("reviewby") <> "" AND request.form("riskthis") <> "" AND request.form("risklast") <> "" AND request.form("applicable") <> "" then 
             
                ophalen = 0 
             
                do while ophalen <> (asubvragen(0)) 
                 
                    vraagomschr = CSTR(request.form.item(subarray(ophalen))) 
                    vraagnum = CINT(subarray(ophalen)) 
                     
                    invoegen = "INSERT INTO subantwoorden (clientnummer,vraagnummer,antwoord) VALUES ("&request.form("clientnummer")&","&vraagnum&",'"&vraagomschr&"') " 
                    db.execute(invoegen) 
                                         
                    ophalen = ophalen + 1 
                loop 
            end if 
             
            if request.form("clientnummer") <> "" AND request.form("clientnaam") <> "" AND request.form("CRMnaam") <> "" AND request.form("reviewby") <> "" AND request.form("riskthis") <> "" AND request.form("risklast") <> "" AND request.form("applicable") <> "" then 
             
                nummer = 0 
             
                do while nummer <> (avragen(0)) 
                 
                    hier gaat het fout-->vraagomschr = CSTR(request.form.item(vrarray(nummer))) 
                    vraagnum = CINT(vrarray(nummer)) 
                     
                    invoegen = "INSERT INTO antwoorden (clientnummer,vraagnummer,antwoord) VALUES ("&request.form("clientnummer")&","&vraagnum&",'"&vraagomschr&"') " 
                    db.execute(invoegen) 
                                         
                    nummer = nummer + 1 
                loop 
            end if 
        %>


na 15 een gegeven aan de databse te hebben toegevoegd zegt hij dit "Een index van een array valt buiten het bereik" dit terwijl er 35 vragen zijn, die elk ook in de array zelf staan.

Iemand een idee hoe dit kan, hij gaat fout bij "vraagomschr = CSTR(request.form.item(vrarray(nummer)))
"

Als ik commentaar voor die ene regel zet dan gaat hij wel gewoon door, dus "vraagnum = CINT(vrarray(nummer))" die eronder staat is geen probleem.

ook heb ik gekeken naar nummer en die loopt netjes van 0 tot 34. voor elke van deze nummers staat er ook netjes een vraag in de array.

enig idee waarom hij vraagomschr = request.form.item(vrarray(nummer)) niet pakt en in dezelfde code net iets hoger wel?

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Ik denk dat het probleem is dat je form velden zowel nummeriek als per string uit kunt vragen en VBScript is type-vrij.

Ik neem tenminste aan dat er een veld in het form zit met als naam een nummer.

Stel bijvoorbeeld het is vraag 35 (ik noem maar iets) dan wil je dus Request.Form("35") doen en het wordt door ASP geinterpreteerd als Request.Form(35). In het ene geval leest ie het formveld met de naam "35" en in het andere geval het 35e veld in het form.

Zou dit het probleem kunnen zijn?

  • _Johannn_
  • Registratie: Februari 2004
  • Laatst online: 08-05 06:24
[/edit]

Volgens mij ligt het daaraan ja, hoe zou ik dit op kunnen lossen?

[ Voor 82% gewijzigd door _Johannn_ op 26-02-2004 16:35 ]


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
code:
1
Request.Form(CStr(vrArray(nummer)))

misschien wil dat helpen, je geeft dan expliciet een String mee.

  • _Johannn_
  • Registratie: Februari 2004
  • Laatst online: 08-05 06:24
Bedankt, nu werkt het wel.
Pagina: 1