Avatar billede Laitings Nybegynder
09. november 2005 - 12:54 Der er 7 kommentarer og
2 løsninger

opdater antal i indkøbskurv, hvordan??

Jeg har følgende session som er en indkøbskurv vareID samt antallet. Hvis kunden køber varen igen, bliver den blot lagt ind i Session som en ny vare.

Hvordan kan jeg tjekke om varen allerede er i sessionen og i så fald kun opdatere antallet?

Jeg er rimeligt lost!

Min session:

Session("kurv")="id1=1|id2=1|id3=1"

Håber på hjælp!
Avatar billede softspot Forsker
09. november 2005 - 13:06 #1
Noget i stil med:

strVarer = session("kurv")

if instr("|" & strVarer & "|", "|" & id & "=" & value & "|") > 0 then
  ' så eksisterer varen
else
  ' så eksisterer den ikke
end if
Avatar billede Laitings Nybegynder
09. november 2005 - 13:30 #2
Jeg må indrømme at jeg gik i krig med min egen kode før jeg så din. Kunne godt tænke mig at få min egen til at virke. Måske du kan hjælpe?

Jeg har indtil videre:

Session("kurv")="id1=1|id2=1|id3=1"

arrvare = split(session("kurv"),"|")
  for u=0 to Ubound(arrvare)
    vare = split(arrvarer(u),"=")
      if vare(0) = Request("orderID") then
        vare(1) = vare(1) + 1
    arrvare(u) = vare(0) & "=" & vare(1)
        ???????????????????????????????????????
      end if
  next

Så er jeg ikke rigtigt nået længere. Hvordan får jeg nu min nye arrvare(u) under "???????????????????" indsat det rigtige sted i sessionen? -og kan det overhovedet lade sig gøre på denne måde?
Avatar billede softspot Forsker
09. november 2005 - 13:33 #3
session("kurv") = join(arrvare)

vil samle dit array i en streng igen...
Avatar billede softspot Forsker
09. november 2005 - 13:34 #4
session("kurv") = join(arrvare,"|")

skulle det vist være - sorry.
Avatar billede Laitings Nybegynder
09. november 2005 - 13:53 #5
Super! Så virker det sgu'!

Den endelige kode kom til at se således ud:

if Session("kurv") = "" then
  session("kurv") = session("kurv") & Request("orderID") & "=1"
else   
  arrvare = split(session("kurv"),"|")
    for u=0 to Ubound(arrvare)
      vare = split(arrvare(u),"=")
        if vare(0) = Request("orderID") then
      vare(1) = (vare(1) + 1)
      arrvare(u) = vare(0) & "=" & vare(1)
      session("kurv") = join(arrvare,"|")
      exist = 1
    end if   
    next           
               
end if


if exist = 1 then
  Response.Write Session("kurv")
else
  session("kurv") = session("kurv") & "|" & Request("orderID") & "=1"
  Response.Write Session("kurv")
end if

Smid et svar så får du lidt points igen! :-)
Avatar billede softspot Forsker
09. november 2005 - 13:59 #6
Svaret kommer der... :)
Avatar billede Laitings Nybegynder
09. november 2005 - 13:59 #7
Den endelige kode kom faktisk til at se således ud:

if Session("kurv") = "" then
  session("kurv") = session("kurv") & Request("orderID") & "=1"
  exist = 1
else   
  arrvare = split(session("kurv"),"|")
    for u=0 to Ubound(arrvare)
      vare = split(arrvare(u),"=")
        if vare(0) = Request("orderID") then
          vare(1) = (vare(1) + 1)
          arrvare(u) = vare(0) & "=" & vare(1)
          session("kurv") = join(arrvare,"|")
          exist = 1
        end if   
    next           
               
end if


if exist = 1 then
  Response.Write Session("kurv")
else
  session("kurv") = session("kurv") & "|" & Request("orderID") & "=1"
  Response.Write Session("kurv")
end if
Avatar billede Laitings Nybegynder
09. november 2005 - 14:00 #8
Takker!
Avatar billede softspot Forsker
09. november 2005 - 14:05 #9
Tak for point og velbekomme :)


Du kunne i princippet forkorte kode lidt (men enig - det er flueknepperi):

if Session("kurv") = "" then
  session("kurv") = session("kurv") & Request("orderID") & "=1"
  exist = 1
else   
  arrvare = split(session("kurv"),"|")
  for u=0 to Ubound(arrvare)
    vare = split(arrvare(u),"=")
    if vare(0) = Request("orderID") then
      vare(1) = (vare(1) + 1)
      arrvare(u) = vare(0) & "=" & vare(1)
      session("kurv") = join(arrvare,"|")
      exist = 1
      exit for ' ingen grund til at loope resten - id er jo fundet...
    end if   
  next           
end if


if exist <> 1 then
  session("kurv") = session("kurv") & "|" & Request("orderID") & "=1"
end if

Response.Write Session("kurv")
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