Avatar billede mecenor Nybegynder
08. juli 2004 - 19:00 Der er 8 kommentarer og
1 løsning

Slettet vare kan ikke købes igen

Hej,
Jeg sletter en vare fra en indkøbskurv ved at sætte den til 0 i stedet for 1.
Ex når varen kommer i kurven: Cart(5,Items) = 1
Og når den slettes: Cart(5,Request.QueryString("id")) = 0

Problemet er, at hvis en vare en gang har været slettet, kan den ikke tilføjes indkøbskurven igen.
Er den en anden måde at slette en vare på?

Mvh. Mec
Avatar billede ellebaek Nybegynder
08. juli 2004 - 19:02 #1
hmm...

Kommer jo meget an på hvordan din indkøbskurv er bygget op...?
Kan vi se lidt kode ?
Avatar billede mecenor Nybegynder
08. juli 2004 - 19:07 #2
Gerne:
<%
                        Cart = Session("Cart")
                        Items = Session("Items")

                        if Request.QueryString("action") = "add" then
                            'Antager det en ny
                            Items = Items + 1
                            nyvin = true
                               
                                Set Conn = Server.Createobject("ADODB.Connection")
                                Conn.Open strDSN
                                Set RS = Conn.Execute("SELECT * FROM cart WHERE vine_ID = "&Request.QueryString("id")&"")
                                if Not RS.EOF then
                                    for i = 0 to ubound(Cart,2)
                                      if Int(Cart(2,i)) = Int(RS("vine_ID")) then
                                        Items = i
                                        nyvin = false
                                    exit for
                                end if
                            next
                            if nyvin = true then
                                'Tilføj ny
                                  Cart(1,Items) = Items
                                  Cart(2,Items) = RS("vine_id")
                                  Cart(3,Items) = RS("vine_navn")
                                  Cart(4,Items) = ((RS("pris"))*(RS("Kasseantal")))*(request.form("kassefelt"))
                                  Cart(5,Items) = 1
                                  Cart(6,Items) = RS("Kasseantal")
                                  Cart(7,Items) = request.form("kassefelt")
                                  Cart(8,Items) = rs("huse_navn")
                            else
                                if Request.Form("mode")="indkob" then
                                'Opdater med de nye tal
                                Cart(4,Items) = Cart(4,Items)+((RS("pris"))*(RS("Kasseantal")))*(request.form("kassefelt"))
                                Cart(7,Items) = Int(Cart(7,Items))+Int(request.form("kassefelt"))
                                else
                                'Tilføj X antal vare til det som findes
                                Cart(4,Items) = ((RS("pris"))*(RS("Kasseantal")))*(request.form("kassefelt"))
                                Cart(7,Items) = (Int(Cart(7,Items))+Int(request.form("kassefelt")))-Int(Cart(7,Items))
                                end if
                            end if
                        end if
                               
                                RS.close
                                Conn.Close
                                Set RS = nothing
                                Set Conn = nothing
                               
                            elseif Request.QueryString("action") = "delete" then
                           
                                Cart(5,Request.QueryString("id")) = 0
                           
                            elseif Request.QueryString("action") = "sletalt" then
                               
                                  ReDim Cart(8,100)
                                  Session("Cart") = Cart
                                  Session("Items") = 0
                                  Session("TotalPris") = 0
                           
                            end if
                       
                        Session("Cart") = Cart
                        if nyvin = true then
                          Session("Items") = Items
                        end if
                        Items = Session("Items")
                        %>
                       
                        <table border="1" bordercolor="#333333" bgcolor="#EEECCC" align="center">
                        <tr align="center" class="sortp">
                            <td>
                                &nbsp;<strong>Antal</strong>&nbsp;
                            </td>
                            <td>
                                &nbsp;<strong>Vare</strong>&nbsp;
                            </td>
                            <td>
                                &nbsp;<strong>Pris</strong>&nbsp;
                            </td>
                            <td>
                                &nbsp;&nbsp;
                            </td>
                          </tr>
                        <%
                        for i = 1 to Items
                            if Cart(5,i) = 1 then
                        %>
Avatar billede mecenor Nybegynder
10. juli 2004 - 16:04 #3
Jeg er desværre ikke kommet videre - sig til hvis der mangler noget kode, for at det giver mening eller hvis noget skal forklares!
Avatar billede ellebaek Nybegynder
10. juli 2004 - 16:05 #4
Jeg har kigget på det, og kan desværre ikke rigtig se nogle fejl..

Kan ikke finde ud af hvorfor den ikke kan bestilles igen i hvert fald..
Avatar billede mecenor Nybegynder
10. juli 2004 - 16:15 #5
:)
"Kan ikke finde ud af hvorfor den ikke kan bestilles igen i hvert fald.."
Betyder det at du ka finde andre fejl? Enhver kommentar er velkommen, bare skyd løs!

Det eneste jeg kan se, er at når Cart(5,Items) én gang er sat til 0 for et bestemt ID[...elseif Request.QueryString("action") = "delete" then Cart(5,Request.QueryString("id")) = 0)...] så kan den ikke sættes til 1 igen. Men hvorfor aner jeg ikke...
Any ideas?
Avatar billede ellebaek Nybegynder
10. juli 2004 - 16:31 #6
uh ja...

faktisk har jeg lidt en ide alligevel..
kiggede lige lidt efter..

if Not RS.EOF then
for i = 0 to ubound(Cart,2)
if Int(Cart(2,i)) = Int(RS("vine_ID")) then
Items = i
nyvin = false
exit for
end if

ret det ovenstående til:

if Not RS.EOF then
for i = 0 to ubound(Cart,2)
if Int(Cart(2,i)) = Int(RS("vine_ID")) OR Int(Cart(5,i)) = 0 then
Items = i
nyvin = false
exit for
end if
Avatar billede mecenor Nybegynder
10. juli 2004 - 18:13 #7
Godt set!
Der skulle lige lidt modifikationer til:

if Not RS.EOF then
for i = 0 to ubound(Cart,2)
if Int(Cart(2,i)) = Int(RS("vine_ID")) then
  if Cart(5,i) = 0 then
    Cart(5,i) = 1
  end if
Items = i
nyvin = false
exit for
end if

og når varen slettes skal pris og antal også sættes til nul:
Cart(5,Request.QueryString("id")) = 0
Cart(4,Request.QueryString("id")) = 0
Cart(7,Request.QueryString("id")) = 0

Det ser ud til at virke, er der nogle umidddelbare problemer i at gøre det på denne måde?
Smid et svar og tak for hjælpen Ellebaek.
Avatar billede ellebaek Nybegynder
11. juli 2004 - 10:52 #8
jeg skulle ikke mene der umiddelbart er nogle problemer ved at gøre det på dem måde :-)

Jeg smider et svar..!
Avatar billede mecenor Nybegynder
11. juli 2004 - 11:02 #9
Super, rigtig mange tak
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