14. juni 2005 - 11:18Der er
17 kommentarer og 1 løsning
Indkøbsvogn (Session, array)
Jeg har lavet en indkøbsvogn hvor man kan minus Men når den rammer 0 så skal den fjernes?
Hvordan går man lige det ? ...
If (a(i)) = Request.Querystring("del") Then If b(i) >= 0 Then b(i) = b(i) - 1 Session("antal_vare") = join(b, ",") For j=0 to limit-1 If j=0 Then Session("antal_vare") = b(j) Else Session("antal_vare") = Session("antal_vare")&","&b(j) End If Next Response.redirect("shoppingcart.asp") End if Dette er når den minus'er i indkøbsvognen ... Det er her den faktisk skal fjernes
Ved ikke om jeg har forstået det rigtig. men måske sådan her? -- If (a(i)) = Request.Querystring("del") Then If b(i) >= 0 Then b(i) = b(i) - 1 Session("antal_vare") = join(b, ",") For j=0 to limit-1 If j=0 Then Session("antal_vare") = b(j) ElseIf j=i and b(j) = 0 Then Session("antal_vare") = Session("antal_vare") //dvs gør ingen ting,spring b(j) over Else Session("antal_vare") = Session("antal_vare")&","&b(j) End If Next Response.redirect("shoppingcart.asp") End if
Jeg kan ikke huske om der er en "continue" i asp som får den til at gå til næste element i for løkken? For så ville det her nok være pænere If (a(i)) = Request.Querystring("del") Then If b(i) >= 0 Then b(i) = b(i) - 1 Session("antal_vare") = join(b, ",") For j=0 to limit-1 If j=0 Then Session("antal_vare") = b(j) ElseIf j=i and b(j) = 0 Then continue Session("antal_vare") = Session("antal_vare")&","&b(j) End If Next Response.redirect("shoppingcart.asp") End if
ahh hvis du fjerner en værdi helt i et array så bliver det jo een kortere Så skal du også rette din limit Hvis du har to sideløbende arrays så skal de jo begge gøres een kortere :o)
If isnumeric(Request.Form("antal")) Then Session("cart_antal") = Request.Form("antal") Else Session("cart_antal") = 0 Response.redirect("showproductsinfo.asp?id=") & Request.Querystring("id") End if
If Session("cart_antal") > 0 Then Session("Cart_id") = Session("Cart_id") & Request.Querystring("id") & "," Session("antal_vare") = Session("antal_vare") & Request.Form("antal") & ","
Response.write Session("cart_id")& "<br>" Response.write Session("antal_vare") Session("cart_antal") = 0 Response.redirect("shoppingcart.asp") End if
Dim a a = split(Cart_id, ",") limit = Ubound(a) Dim b b = split(antal_vare, ",") For i = 0 to limit -1
If (a(i)) = Request.Querystring("add") Then b(i) = b(i) + 1 For j=0 to limit-1 If j=0 Then Session("antal_vare") = b(j) Else Session("antal_vare") = Session("antal_vare")&","&b(j) End If Next Response.redirect("shoppingcart.asp") End if
If (a(i)) = Request.Querystring("del") Then If b(i) >= 0 Then b(i) = b(i) - 1 Session("antal_vare") = join(b, ",") For j=0 to limit-1 If j=0 Then Session("antal_vare") = b(j) ElseIf j=i and b(j) = 0 Then continue Session("antal_vare") = Session("antal_vare")&","&b(j) End If Next Response.redirect("shoppingcart.asp") End if
Hmm måske sådan her. Altså hvis i=j og b(j) = 0 så skal den fjerne elementet og derfor "continue", ellers indsætter den normalt. Hvis den skal fjerne elementet laves sådan set samme tjek på a --- <% If isnumeric(Request.Form("antal")) Then Session("cart_antal") = Request.Form("antal") Else Session("cart_antal") = 0 Response.redirect("showproductsinfo.asp?id=") & Request.Querystring("id") End if
If Session("cart_antal") > 0 Then Session("Cart_id") = Session("Cart_id") & Request.Querystring("id") & "," Session("antal_vare") = Session("antal_vare") & Request.Form("antal") & "," Response.write Session("cart_id")& "<br>" Response.write Session("antal_vare") Session("cart_antal") = 0 Response.redirect("shoppingcart.asp") End if
Dim a,b a = split(Cart_id, ",") limit = Ubound(a) b = split(antal_vare, ",")
For i = 0 to limit -1 If (a(i)) = Request.Querystring("add") Then b(i) = b(i) + 1 For j=0 to limit-1 If j=0 Then Session("antal_vare") = b(j) Else Session("antal_vare") = Session("antal_vare")&","&b(j) End If Next Response.redirect("shoppingcart.asp") End if
If (a(i)) = Request.Querystring("del") Then If b(i) >= 0 Then b(i) = b(i) - 1 Session("antal_vare") = join(b, ",") For j=0 to limit-1 If j=i and b(j) = 0 Then For k=0 to ubound(a)-1 If k=i Then continue ElseIf k=0 Then temp = a(k) Else temp = temp&","&a(k) End If Next a = split(temp,",") continue ElseIf j=0 Then Session("antal_vare") = b(j) Else Session("antal_vare") = Session("antal_vare")&","&b(j) End If Next Response.redirect("shoppingcart.asp") End if End if Next %>
Helt alternativt, hvis det bare ikke gider. Så kan du jo blot springe dem over som har værdi nul. Du kan springe dem over der hvor du trækker fra, og du kan springe dem over når du regner pris ud, og når du skriver varene ud. Altså bare tjekke "If b(i) > 0 Then gør noget Else lad være" så slipper du for at slette dem i dine arrays og tænke på boundaries
Jebber ;) Vi kan jo altid gå tilbage og kigge igen hvis det ikke er nok :)
Synes godt om
Ny brugerNybegynder
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.