Avatar billede lund_dk Praktikant
15. marts 2008 - 16:34 Der er 9 kommentarer og
1 løsning

formfelter array

Nogen der kan hjælpe mig.

Har 30 formfelter

<input type="text" name="sporgsmaal[1]">
<input type="text" name="sporgsmaal[2]">
<input type="text" name="sporgsmaal[3]">
<input type="text" name="sporgsmaal[4]">
<input type="text" name="sporgsmaal[5]">
osv til de 30

Hvordan laver jeg et array ud fra de ID numre der angives?

ved jeg kan kalde alle felter det samme, og få en separeret string til at lave array, men det ønsker jeg ikke. Jeg skal bruge det bestemt ID nummer :)
Avatar billede erikjacobsen Ekspert
15. marts 2008 - 16:45 #1
<input type="text" name="sporgsmaal1">

og så

  Request.Form("spoergsmaal" & i)

hvor i går fra 1 til 5
Avatar billede lund_dk Praktikant
15. marts 2008 - 16:51 #2
men kan risikere at jeg kommer ud for det vil springe i numrene

Eks:
<input type="text" name="sporgsmaal[1]">
<input type="text" name="sporgsmaal[3]">
<input type="text" name="sporgsmaal[4]">
<input type="text" name="sporgsmaal[5]">
<input type="text" name="sporgsmaal[8]">
Avatar billede erikjacobsen Ekspert
15. marts 2008 - 16:54 #3
Så er den vel tom. Selve arrayet laver du bare på samme måde, som du plejer i VB.
Avatar billede lund_dk Praktikant
15. marts 2008 - 16:56 #4
Er vist ikke 100% med på hvad du mener *smiler blond*
Avatar billede erikjacobsen Ekspert
15. marts 2008 - 17:26 #5
Utestet:

<input type="text" name="sporgsmaal1">
<input type="text" name="sporgsmaal3">
<input type="text" name="sporgsmaal4">
<input type="text" name="sporgsmaal5">
<input type="text" name="sporgsmaal8">

og i koden

dim a(8)

for i=1 to 8 do
  a(i)=Request.Form("spoergsmaal" & i)
next

Så kan det være nogle af indgangene i arrayet indholder en tom streng - men det kan man jo ikke kalde en katastrofe...
Avatar billede lund_dk Praktikant
15. marts 2008 - 17:33 #6
Yes, så er jeg med..
Et problem er bare jeg ikke på forhånd ved hvad det sidste ID er, men må jeg så bare hente frem i et nyt recordset :)




--------
min kode
--------

<%
Set rsList= Conn.Execute("SELECT * from sporgsmaal order by id")
if rsList.eof or rsList.bof then
else
Do While Not RsList.EOF

Set rsSvar= Conn.Execute("SELECT * from sporgsmaal_svar where brugerid = " & session("id") & " and spid = " & rsList("id") & "")
if rsSvar.eof or rsSvar.bof then
strSvar = ""
else
strSvar = rsSvar("svar")
end if
rsSvar.close
set rsSvar = nothing

%>

    <tr>
        <td class="alt"><b><%=rsList("sporgsmaal")%></b></td>   
    </tr>   
    <tr>
        <td><input type="text" name="sporgsmaal<%=rsList("id")%>" value="<%=strSvar%>" style="width:100%;"></td>   
    </tr>
    <tr>
        <td>&nbsp;</td>
    </tr>
<%
rsList.MoveNext
Loop
end if
rsList.close
set rsList = nothing
%>
Avatar billede erikjacobsen Ekspert
15. marts 2008 - 17:52 #7
Skriv nummeret på det sidste id i et hidden-felt (og vær opmærksom på at enhver hacker med en IQ > 25 kan ændre det - dvs. kontroller det giver mening før du bruger det (en hacker ville kunne sætte tallet til 2000000000 og så ville dit script nok belaste serveren en kende).
Avatar billede lund_dk Praktikant
15. marts 2008 - 18:37 #8
har bare sat den fra 1 - 100, den burde ikke komme derover..
Det andet tør jeg ikke ;)

Men smid et svar, har fået det hele til at fungere
Avatar billede erikjacobsen Ekspert
15. marts 2008 - 18:44 #9
Jeg samler slet ikke på point, tak. Svar selv, accepter eget svar.
Avatar billede lund_dk Praktikant
15. marts 2008 - 20:08 #10
Oki :)
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