Avatar billede KLS Novice
14. december 2002 - 16:05 Der er 3 kommentarer og
2 løsninger

! ! ! HASTER ! ! ! Dynamisk hentning af Form Felt

Jeg har en form som har 200 Check boxe, disse boxe hedder 1 2 3 4 osv...
Når jeg så skal hente værdierne af disse, hvordan gøres dette bedst.
(jeg skal til føje mere til værdien af disse boe efter værdien er hentet.)

side1 = request.form("Til_1")
side1 = "|"&side1&"|"
side2 = request.form("Til_2")
side2 = "|"&side2&"|"
Dette skal gøres ca. 200 gange...
Kan det ikke gøres via et Array eller noget...


Jeg er helt på bar bundt.
Avatar billede bbe1379 Nybegynder
14. december 2002 - 16:10 #1
du skal lave en for each løkke

Noget i stil med

For each i in Request.Form
Side = Request.Form(i)
Next

Sig til hvis du vil have lidt mere kode
Avatar billede skg Nybegynder
14. december 2002 - 18:50 #2
du skal IKKE have 200 checkboxe !
Avatar billede bbe1379 Nybegynder
14. december 2002 - 19:03 #3
Her er lidt kode:

Denne side generer 10 checkboxe med forskelligt navn så du kan teste. Hvis en checkbox ikke er "hakket af" kan du slet ikke fange den med request.form, så jeg har lavet en lille workaround med Javascript og et skjult tekstfelt, der indeholder værdien.

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

<html>
<head>
<title>Untitled Document</title>



</head>

<body>

<form action="formget.asp" method="POST" name="FormElem">

<Input type="submit" Value="Send"><br>

<%For i = 0 to 10%>

Check_<%=i%>

<input type="checkbox" value="true" onClick="if (this.checked) this.form.Check_<%=i%>_value.value=this.value; else this.form.Check_<%=i%>_value.value=''">
<input type="hidden" name="Check_<%=i%>_value"><br>

<%Next%>

</form>

</body>
</html>

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


Du kan ikke oprette almindelige variabelnavne dynamisk, så jeg vil foreslå at du bruger session variabler i stedet for. Denne side fanger værdierne fra formelementerne.

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



<%
For each i in Request.Form

    if Right(i,5) = "value" Then
        Session("Side_"&i) = Request.Form(i)
        If Session("Side_"&i) = "" Then Session("Side_"&i) = "false"

        Response.write i & " - " & Session("Side_"&i) & "<br>"
    End if

Next
%>
Avatar billede eagleeye Praktikant
14. december 2002 - 22:15 #4
Hvis du vil havde en liste med værdier som er valgt fra din checkbox eksvis  3,4,7,9 så kan du give dine checkbox samme navn men forskellige values..

<input type="checbox" name="navn" value="1">
<input type="checbox" name="navn" value="2">
<input type="checbox" name="navn" value="3">
<input type="checbox" name="navn" value="4">
<input type="checbox" name="navn" value="5">

Hvis du så sætter kryfs i nummer 1 2 og 5 så kan du hendte det med request.form

valgt = Request.Form("navn")


Så er er valgt = "1,2,5"
Avatar billede burningice Nybegynder
15. december 2002 - 23:30 #5
skg>> mmm... total yndlings brug_hele_aftenen_til_at_krydse_af-side ;)
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