Avatar billede nozio Nybegynder
30. januar 2003 - 19:11 Der er 8 kommentarer og
1 løsning

Dynamisk form

Vil lige høre hvordan i løser denne lille ting - har selv en løsning jeg bruger - men den er sikkert ikke alt for elegant.

Får en request in ( request("number_of_visitors") ) og ud fra dette tal - laver jeg så et loop


do while counter < request("number_of_visitors")
  counter = counter + 1

<input type="text" name="navn" value="">

loop

- her ender jeg så op med f.eks. 5 ens felter (navn).

Disse bliver så submit'et - helt almindeligt - til en eller anden side. Her er det så det kommer !

Hvor 'fanger' I dem nemmest på denne side ??

Ved godt jeg kunne kalde dem name="navn<%=counter%>" og så have 5 forskellige - men da det hele gerne skulle være dynamisk - så skulle den gerne virke med såvel 5 som 15.

Så spørgsmålet er sådan set - Hvor 'fanger' I dem nemmest på modtager siden ??
Avatar billede dk_akj Nybegynder
30. januar 2003 - 19:16 #1
do while counter < request("number_of_visitors")
  counter = counter + 1

<input type="text" name="navn" value="">

loop

<input type=hidden name="antalbrugere" value=<%=counter%> >


på den side du submitter imod laver du en

antal = request.form("antalbrugere")

//akj
Avatar billede nozio Nybegynder
30. januar 2003 - 19:20 #2
Jo den kender jeg godt - MEN hvis jeg nu gerne vil have de forskellige request("navn") ud i variabler .....

Sådan at jeg kan fange - hvis et af dem IKKE er udfyldt ..

OG nej det skal IKKE gøres i Javascript :)
Avatar billede dk_akj Nybegynder
30. januar 2003 - 19:23 #3
Hmm jeg skulle ellers lige foreslå javascript inden jeg læste sidste linie. hvorfor ikke javascript ??

//akj
Avatar billede dk_akj Nybegynder
30. januar 2003 - 19:27 #4
do while counter < request("number_of_visitors")
  counter = counter + 1

' opret x inputs med fortløbende navngivning
reponse.write "<input type=text name=navn_"& counter & " value=''>

loop

response.write "<input type=hidden name=antalbrugere value="&counter &">"


' på modtagende side
for i = 1 to request.form("antalbrugere")
  data = request.form("navn_" & i )
  if data = "" then
    ' ingen data i feltet
  else
    ' ok
  end if
next
Avatar billede nozio Nybegynder
30. januar 2003 - 19:29 #5
For den kender jeg :)

Det er nu ikke så meget fordi jeg vil tjekke om de er tomme - men de skal jo i en eller anden database og der er lidt flere felter i hvert loop.

Så for hvert request("navn") jeg modtager (på sæt-ind-i-DB-siden) - skal jeg lige lave lidt tjek og sætte dem ind.

Her er det så at de alle sammen hedder request("navn") og kommer derfor i den samme streng.

Min request("navn") object vil så kunne se sådan her ud:
Ole Hansen, Allan Olsen, Inge Jensen
Avatar billede nozio Nybegynder
30. januar 2003 - 19:33 #6
OK dk_akj - den skal du nok få lidt points for :) (når jeg lukker spørgsmålet)

MEN hvis jeg nu gerne vil have dem ud i variabler - er det noget der hedder dynamisk variabler ?? (lyder modsigende i sig selv)

Sådan ala:

for i = 1 to request.form("antalbrugere")
  data & i = request.form("navn_" & i )
next

- så jeg ville ende op med i antal variabler
Avatar billede dk_akj Nybegynder
30. januar 2003 - 19:36 #7
data & i = request.form("navn_" & i )  Vil give en syntaxfejl.

Har du tænkt på at bruge et array ??


antal = request.form("antalbrugere")
dim data(antal)

for i = 1 to antal
  data(i) = request.form("navn_" & i )
next
Avatar billede nozio Nybegynder
30. januar 2003 - 19:45 #8
jeps - du har helt ret

Rodede lige lidt rundt på Google (de har jo ALLE svar).

Det er sådan her - med dynamiske variabler:

For X = 1 To 10
    Execute "navn" & X & " = ""whatever"" & x "
Next

- så her du så

navn1
navn2
osv.......
Avatar billede dk_akj Nybegynder
30. januar 2003 - 19:46 #9
Oki, den kandte jeg ikke.

Tak for pts.

//akj
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