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
%>
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 ?
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)