22. februar 2006 - 11:48Der er
7 kommentarer og 1 løsning
Skelne mellem 2 varer med samme id
Hej Jeg har en indkøbskurv (cart), hvor varerne skelnes fra hinanden med id (Cart(2,i)). Mit problem er, at jeg gerne vil kunne give hver vare en status og derved have 2 varer med ens id, men med separat status. Hver gang jeg forsøger at opdatere indkøbskurven nu med fx ’VareID1, status2’, så opdateres/overskrives ’VareID1, status1’ hvis den er i indkøbskurven. Status kommer fra 2 forskellige ’købsknapper’ på en anden side. Jeg vil gerne kunne skelne mellem varer med sammen id, men med statusen ’flaskeindkob’ som 1 eller <> 1. Koden:
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 if Cart(5,i) = 0 then Cart(5,i) = 1 end if Items = i nyvin = false
exit for end if next if nyvin = true then 'Tilføj ny flaskeindkob = 0 if Request.Form("mode")="flaskeindkob" then flaskeindkob = 1 end if 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") Cart(9,Items) = rs("Aargang") Cart(10,Items) = rs("lager") Cart(11,Items) = rs("pris") Cart(12,Items) = flaskeindkob
Og senere i koden:
Session("Cart") = Cart if nyvin = true then Session("Items") = Items end if Items = Session("Items")
Jeg mangler virkelig noget ekspertise - det her er det sidste problem, der står i vejen for et færdigt projekt.
I varerkurven skal det være muligt at kende forskel på varer med samme ID. En løsning kunne være at tildele hver vare en variabel og så tjekke om denne variabel er 0 eller 1. Men hver gang der laves kald til databasen skal det være ID uden variabel. Jeg synes ikke det lyder så svært, men jeg kan simpelthen ikke få det til at virke...
Kode:
Cart = Session("Cart") Items = Session("Items")
if Request.QueryString("action") = "add" then 'Antager det en ny Items = Items + 1 nyvin = true paatilbud = 0 flexflaske = 0
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 Request.Form("mode")="flaskeindkob" or Cart(12,i) = 1 then flexflaske = 1 else flexflaske = 0 end if if Int(Cart(2,i)) = Int(RS("vine_ID")) then 'her skal der vel skelnes if Cart(5,i) = 0 then Cart(5,i) = 1 end if ' if flexflaske = 1 then ' Cart(2,i) = Cart(2,i) & "1" ' end if Items = i nyvin = false exit for end if next
'Tilføj ny if nyvin = true then
Cart(1,Items) = Items Cart(2,Items) = (RS("vine_id")) Cart(3,Items) = RS("vine_navn") if loggetind = "ja" and paatilbud <> 1 then Rabat = (FormatNumber(RS("pris"),2))*FormatNumber(0.15,2) medlemspris = (FormatNumber(RS("pris"),2))-(FormatNumber(Rabat,2)) if flexflaske = 1 then Cart(4,Items) = (medlemspris)*(request.form("kassefelt")) else Cart(4,Items) = ((medlemspris)*(RS("Kasseantal")))*(request.form("kassefelt")) end if else if flexflaske = 1 then Cart(4,Items) = (RS("pris"))*(request.form("kassefelt")) else Cart(4,Items) = ((RS("pris"))*(RS("Kasseantal")))*(request.form("kassefelt")) end if end if Cart(5,Items) = 1 Cart(6,Items) = RS("Kasseantal") Cart(7,Items) = request.form("kassefelt") Cart(8,Items) = rs("huse_navn") Cart(9,Items) = rs("Aargang") Cart(10,Items) = rs("lager") Cart(11,Items) = rs("pris") Cart(12,Items) = flexflaske
Længere ned i koden:
Session("Cart") = Cart if nyvin = true then Session("Items") = Items end if Items = Session("Items")
Sig til hvis jeg skal prøve at forklare det bedre...
OK, fik det aldrig til at virker, det blev et workaround, hvor der så ikke skal skelnes mellem en status. Læg et svar Nielle, så er der lidt point som tak for forsøget.
Nej tak til point på den - jeg løste jo ikke dit problem for dig. Tag du dem bare selv igen. Men ellers tak for tilbudet. :^)
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.