Avatar billede Jman Praktikant
21. juli 2005 - 23:41 Der er 5 kommentarer og
1 løsning

Subscript out of range: [number: 5]

Jeg forsøger at tilføje et felt i nedenstående, men får fejlen:
Subscript out of range: '[number: 5]'
add.asp, line 29 
Jeg forsåtr at det har noget at gøre med jeg skal udvide array - men hvor gør jeg det

<%
id = request.querystring("a_id")
items = request.form("items"&id)
pris = request.form("pris"&id)
artikelnr = request.form("nr"&id)
bez = request.form("bez"&id)
antalKs = request.form("antal"&id)
response.write("Session items:" & session("items"))

if isempty(session("varekob")) then
    dim varekob(100,4)
    session("items")=-1
    session("varekob") = varekob
    i = -1
else
    i = session("items")
    varekob = session("varekob")
end if

if len(id)>0 and len(items)>0 then
    if items>0 and i <100 then
        i = i + 1
        varekob(i,0) = items
        varekob(i,1) = id
        varekob(i,2) = preis
        varekob(i,3) = artikelnr
        varekob(i,4) = bez
        varekob(i,5) = antalKs  ' <- Denne fejler
       
        session("items") = i
        session("varekob") = varekob
        Erase varekob
        %>
  <p class=header>Vent venligst .. arbejder</p>
  <script type="text/javascript">
  setTimeout("top.location.href='<%=Request.ServerVariables("http_referer")%>'",0)
  </script>
        <%
    end if
end if
%>
Avatar billede busschou Praktikant
21. juli 2005 - 23:51 #1
du skal bare definere den i denne linje
dim varekob(100,4)
Så den bliver
dim varekob(100,5)
Avatar billede Jman Praktikant
22. juli 2005 - 06:55 #2
har prøvet .. den giver samme fejl
Avatar billede Jman Praktikant
22. juli 2005 - 06:56 #3
Nå .. her til morgen, virker det... damn de cachede sider *GG*
Avatar billede Jman Praktikant
22. juli 2005 - 07:04 #4
kan du så forklare mig hvorledes ovennævnte script egentlig virker (så jeg kan få lidt indblik i arrays.. mest hvorfor der lige præcis skal stå dim varekob(100,5). Jeg forstå nu at 5 er antallet, men hvorfor lige 100 ?
Avatar billede busschou Praktikant
22. juli 2005 - 08:31 #5
Det er fordi det er et todimensionalt array
Jeg ved ikke hvor mange dimensioner man kan putte på et array i asp, men i andre sprog kan man flere og i princippet burde man kunne uendelig mange
Forestil dig et normalt array med fire poster
test = Array("1","2","3","4")
Et todimensionalt array kan så tænkes som at hver post er et array
test = Array(Array("1","2","3","4"),Array("1","2","3","4"),Array("1","2","3","4"))
Dit varekob array er sikkert todimensionalt fordi hver indgang vil indeholde oplysninger om hver enkelt bestilte vare (dens id, pris, antal mm)
Dvs du får et array som kan tolkes som
varekob = Array(Array(items1,id1,preis1,artikelnr1,bez1,antalKs1),Array(items2,id2,preis2,artikelnr2,bez2,antalKs2)
Grunden til du på forhånd skal vælge at der maks er 5 muligheder for hver vare, samt at der maks kan være 100 varer. Det er at et array i asp ikke er dynamisk
Dvs du kan ikke "bare lige" undervejs putte vare nr 101.
Hvis man ønsker det dynamsik kan man benytte sig af Scriptin.Dictionary som er udvidelsesbart array (kan man sige) men som kun er een dimensinalt

Håber det gav lidt forståelse :o)
Avatar billede Jman Praktikant
22. juli 2005 - 08:51 #6
ooookay - det giver helt fint mening .. Mange tak :o)
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