Avatar billede karsten_larsen Praktikant
28. juli 2003 - 20:26 Der er 12 kommentarer og
1 løsning

Array problem

Jeg har en del (29 stk. ) form, som hvis ikke udfyldt skal give værdien nul.


Det kan løses på normalvis sådan her:

If henv_1 = "" then
  henv_1 = 0
else
  henv_1 = 1
end if

MEN jeg vil gerne gøre det mere smart, så jeg har prøvet mig med følgende array - det virker bare ikke efter hensigten. Hvad gør jeg forkert??


        henvendelse = "henv_1, henv_2, henv_3, henv_4, henv_5"
        arrhenv = Split(henvendelse,",")
       
        For d = 0 to 4
            If arrhenv(d) = "" then
                arrhenv(d) = 0
            else
                arrhenv(d) = request.form ("henv_" & d+1)
            end if
        next

?? :-) karsten_larsen


For at undgå dette
Avatar billede Slettet bruger
28. juli 2003 - 20:30 #1
Prøv
arrhenv(d) = request.form (eval("henv_" & d+1))
Avatar billede eagleeye Praktikant
28. juli 2003 - 20:32 #2
Skal du havde 1 eller 0 alt efter om de er lig med "", og alle indputs hedder noget noeget med henv_XX

Dim arrhenv(29)
for i = 0 to 29
  str = Request.Form("henv_" & i)
  if str = "" then
    arrhenv(i) = 0
  else
    arrhenv(i) = str
  end if
next
Avatar billede karsten_larsen Praktikant
28. juli 2003 - 20:49 #3
-> bertie
det giver fejl
-> eagleeye
Kan ikke få det helt til at virke:
De første 5 stk. hedder henv_1 til henv_5, dernæst anden variabel.

Så burde det bare være sådan her ikke?:

henvendelse = "henv_1, henv_2, henv_3, henv_4, henv_5"
arrhenv = Split(henvendelse,",")

Dim arrhenv(5)       

for i = 1 to 5
  str = Request.Form("henv_" & i)
  if str = "" then
    arrhenv(i-1) = 0
  else
    arrhenv(i-1) = str
  end if
next

??
Avatar billede Slettet bruger
28. juli 2003 - 20:50 #4
Hvilken fejl får du?
Avatar billede karsten_larsen Praktikant
28. juli 2003 - 20:53 #5
-> bertie, med dit forslag får jeg følgende
Expecting string input og The function expects a string as input.

med eagleeye´s forslag får jeg ikke nogen værdier
Avatar billede Slettet bruger
28. juli 2003 - 20:56 #6
Prøv denne så
arrhenv(d) = eval(request.form("henv_" & d+1)
Avatar billede karsten_larsen Praktikant
28. juli 2003 - 21:00 #7
-> bertie
det hjælper ikke det - den giver fejl nu, men ingen værdier.

fejlen er nok et andet sted
Avatar billede eagleeye Praktikant
28. juli 2003 - 21:04 #8
Dette skulle kunne gøre det:


Dim arrhenv(5)       

for i = 1 to 5
  str = Request.Form("henv_" & i)
  if str = "" then
    arrhenv(i-1) = 0
  else
    arrhenv(i-1) = str
  end if
next
Avatar billede eagleeye Praktikant
28. juli 2003 - 21:04 #9
men har du flere med andre navne?
Avatar billede eagleeye Praktikant
28. juli 2003 - 21:07 #10
Du kan lave et array med alle navne:

<%
formnavne = "henv_1, henv_2, henv_3, henv_4, henv_5, ANDET_1, ANDET_2"
fnArr = Split(formnavne, ",")
Dim arrhenv(ubound(fnArr))

for i = lbound(fnArr) to ubound(fnArr)
  str = Request.Form("" & Trim(fnArr(i)))
  if str = "" then
    arrhenv(i) = 0
  else
    arrhenv(i) = str
  end if
next
%>
Avatar billede eagleeye Praktikant
28. juli 2003 - 21:08 #11
det muligt den fejler i denne linje:
Dim arrhenv(ubound(fnArr))

Hvis den gør så skriv det som:
Dim arrhenv(29)
Avatar billede karsten_larsen Praktikant
28. juli 2003 - 21:09 #12
Jeg laver lige en prøve side. De andre navne er bet_1 til bet_6 og så fortsætter det.
Avatar billede karsten_larsen Praktikant
28. juli 2003 - 21:26 #13
Jeg fandt fejlen - torske dum fejl  - havde glemt at huske på skrive
henv_1 = arrhenv (0)

Mange tak for hjælpen - det var lærerigt

:-))) karsten_larsen

For dem som kan bruge det til noget, så er hele ser det sådan ud

<html>
<body>
<% If request.Form("Send") = "Send" then
response.write "Føglende er sendt:" & "<br>"

Dim arrhenv(5)
for i = 1 to 5
  str = Request.Form("henv_" & i)
  if str = "" then
    arrhenv(i-1) = 0
  else
    arrhenv(i-1) = str
  end if
next

For i = 0 to 4
response.write arrhenv (i)
next
henv_1 = arrhenv (0)
response.write "henv_1  = " & henv_1
'også videre
end if %>
<form method="post" action="array.asp">
<input type="checkbox" name="henv_1" value="1">
<input type="checkbox" name="henv_2" value="1">
<input type="checkbox" name="henv_3" value="1">
<input type="checkbox" name="henv_4" value="1">
<input type="checkbox" name="henv_5" value="1">
<input name="Send" type="submit" value="Send">
</form>
</body>
</html>
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