Avatar billede debugger Nybegynder
26. juni 2001 - 12:04 Der er 15 kommentarer og
1 løsning

Iteration gennem en modtaget formular

Hvorddan gennemløber jeg alle elementerne i request.form? Jeg kan ikke få dette til at virke:

    if request.servervariables(\"CONTENT_LENGTH\") > 0 then
        response.write(\"Formular modtaget<BR>\")
       
        for each item in request.form
            response.write(\"Element \" & request.form(item) & \" er modtaget<BR>\")
        next

    end if

.. den skriver \"formular modtaget\", så kodeblokken _bliver_ \"triggered\"

Hvis jeg får dette til at virke, så vil jeg få _værdierne_ i den modtagne formular. Kan jeg også/i stedet få fat i _navnene_ på de enkelte inputfelter?
Avatar billede erikjacobsen Ekspert
26. juni 2001 - 12:09 #1
Bruger du <form ... method=\"post\">

Du skriver bare

  response.write(\"Element \" & item & \" = \" & request.form(item) & \" er modtaget<BR>\")
Avatar billede debugger Nybegynder
26. juni 2001 - 12:15 #2
nårh ja...

men det kører stadig ikke...

hvis jeg slår option explicit til siger den \"variablen er ikke defineret (item)\"

man skal ikke sætte item lig med noget først? det lader ikke til at den opfatter item som en inbygget ASP reference?
Avatar billede debugger Nybegynder
26. juni 2001 - 12:22 #3
Ups...

der er et billede med i formularen.. derfor tager ASPUpload sig af den, og <FORM> tagge er som følger:

<FORM METHOD=\"post\" ACTION=\"tilfoej.asp\" NAME=\"frmUpdate\" ENCTYPE=\"multipart/form-data\">

det er nok den ENCTYPE?.. den havde jeg overset totalt..
Avatar billede erikjacobsen Ekspert
26. juni 2001 - 12:24 #4
det her virker da. Men den siger ikke noget til checkboxen, hvis den ikke er der

<BODY>
<%
if request.servervariables(\"CONTENT_LENGTH\") > 0 then
  response.write(\"Formular modtaget<BR>\")
                               
  for each item in request.form
    response.write(\"Element \" & request.form(item) & \" er modtaget<BR>\")
  next

end if
%>

<form method=\"post\">
<INPUT TYPE=\"checkbox\" NAME=\"aaa\">
<INPUT TYPE=\"password\" name=\"bbb\" value=\"bussemand\">
<input type=\"submit\">
</form>

</BODY>
Avatar billede erikjacobsen Ekspert
26. juni 2001 - 12:26 #5
Ja, det er da enctype .... hmm ... hvordan gør man det i ASP ??
Avatar billede erikjacobsen Ekspert
26. juni 2001 - 12:34 #6
Det er diskuteret her: http://www.eksperten.dk/spm/15813 og ser
ikke ud til at kunne gøres.

Måske derfor jeg bedre kan lide PHP :)
Avatar billede debugger Nybegynder
26. juni 2001 - 12:42 #7
Jeg bruger APSUpload, og kan derfor bruge Upload.form() i stedet for Request.form()

Men jeg må lige teste det.... det kunne være man skulle kigge i doumentationen til ASPUpload.
Avatar billede erikjacobsen Ekspert
26. juni 2001 - 12:45 #8
...ja, jeg mente: ikke kunne gøres med Request.form - og det mener
jeg egentlig er en skør begrænsning.
Avatar billede debugger Nybegynder
26. juni 2001 - 13:09 #9
Jeg bruger flg kode:

        dim item
        dim index
        index = 0
       
        for each item in Upload.form
            index = index + 1
            response.write(\"modtaget element nummer: \" & index & \" Navn = \" & item & \"<BR>\")
            \'erikjaobsens forslag: response.write(\"Element \" & item & \" = \" & Upload.form(item) & \" er modtaget<BR>\")
        next

Hvilket resulterer i at jeg får:

modtaget element nummer: 1 Navn = xcvxcvcxv
modtaget element nummer: 2 Navn =
modtaget element nummer: 3 Navn = 8
modtaget element nummer: 4 Navn = 34

.. men \"Item\" returnerer åbenbart ikke ikke _navnet_, men _værdien_ af <INPUT> - feltet.

Kan man ike få fat i navnet?

Det skal lige siges, at jeg ved at gøre som du, erikjacobsen foreslog - response.write(\"Element \" & item & \" = \" & request.form(item) & \" er modtaget<BR>\") - får en \"index out of range\", hvilket jo er klart når der kaldes request.form(xcvxcvcxv)

Så altså: Item returnerer åbenbart _værdien_ - hvad retunerer _navnet_?
Avatar billede debugger Nybegynder
26. juni 2001 - 13:18 #10
Request.form(xcvxcvcxv) er self. Upload.form(xcvxcvcxv)
Avatar billede erikjacobsen Ekspert
26. juni 2001 - 13:29 #11
Retfærdigvis vil jeg gerne blandes udenfor yderligtgående komponenters
eventuelle malfunktion.... Mit forslag gjaldt alene request.form *gg*

Men der må være en anden collection i den komponent. Check du bare
dokumentationen.
Avatar billede debugger Nybegynder
26. juni 2001 - 13:36 #12
Ja self. undskyld.

Så du mener altså, at item referer til navnet, ved brug af request.form()?
Avatar billede debugger Nybegynder
26. juni 2001 - 13:42 #13
Efter et gennemsyn af dokumentationen af ASPUpload fik jeg flg. til at virke efter hensigten:

        dim formItem
        dim index
        index = 0
       
        for each formItem in Upload.form
            index = index + 1
            response.write(\"modtaget element nummer: \" & index & \" Navn = \" & formItem.name & \" = \" & Upload.form(formItem.name) & \"<BR>\")
        next

Dette er hermed givet vidrere til andre ASPUpload - brugere

Tak for hjælpen :o)
Avatar billede erikjacobsen Ekspert
26. juni 2001 - 13:43 #14
...det er næsten alt for meget...:)

Men så blev vi alle så meget klogere
Avatar billede debugger Nybegynder
26. juni 2001 - 15:51 #15
Ideen er vel, at man først bruger søgefunktionen til at finde et besvaret spørgsmål, der kan hjælpe en, og så må man oprette hvis det ikke giver poste.

Så er det jo rart, at der osse er et svar, man kan bruge i de spm. der er i \"arkivet\".

Bare min mening :o)
Avatar billede debugger Nybegynder
26. juni 2001 - 15:52 #16
poste = pote (godt det snart er fyraften!)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester