Avatar billede loukas Mester
23. juli 2002 - 22:22 Der er 18 kommentarer og
1 løsning

session ??

Jeg forsøger at lave en indkøbskurv til en webshop.

Når man klikker *Læg i Kurven*
Kommer følgende querystring :

action=add&item=82&size=small&color=red&count=1

item svarer til id i Databasen.

Nu har jeg lavet denne meget simple
session("vare"):

if Len(Request.QueryString("action")) > 0 then
    session("vare") = Request.QueryString("item") & ", " & Request.Querystring("size") & ", " & Request.QueryString("color") & ", " & Request.QueryString("count")
   
    Response.Write session("vare")
   
end if

men der skal jo kunne lægges flere varer i ????
count er antallet af varer....
hmmm !#!!?
Avatar billede mccannon Nybegynder
23. juli 2002 - 22:23 #1
hmm
session("vare") = session("vare") & Request.QueryString("item") & ", " & Request.Querystring("size") & ", " & Request.QueryString("color") & ", " & Request.QueryString("count")
Avatar billede loukas Mester
23. juli 2002 - 22:26 #2
jo jo, men hvordan tager man så en varer ud igen ???
Avatar billede loukas Mester
23. juli 2002 - 22:29 #3
Ku' man ikke lave noget lignende :

session("vare") = Request.QueryString("item") & ", " & Request.Querystring("size") & ", " & Request.QueryString("color") & ", antal = antal + " & Request.QueryString("count")


??? ? ? ? ? ? ?
Avatar billede mccannon Nybegynder
23. juli 2002 - 22:30 #4
hmm du putter et komma ind imellem hver querystring..så kunne man jo splitte den på det komma

måske noget i retning af

kurv = split(session("vare"),",")
for i = 0 to ubound(kurv) step 4
response.write kurv(i)
next
Avatar billede loukas Mester
23. juli 2002 - 22:37 #5
så ud skriver den kun 'item' eller 'vareid'


!
Avatar billede eagleeye Praktikant
23. juli 2002 - 23:06 #6
Det bliver stort set umuligt at holde styr på i en lang streng hvis du vil tillade man kan vælge flere forskellige vare. Jeg vil forslå at bruge arrays, og hver vare man vil købe bliver gemt i et en "kolonne" i et array:


If IsArray(Session("vare")) = false Then
  Dim vare2(19,3)   
  vare2(1,0) = Request.QueryString("item")  'Vare nr eller anden ID
  vare2(1,1) = Request.Querystring("size")  'Størrelse
  vare2(1,2) = Request.QueryString("color") 'Farven
  vare2(1,3) = Request.QueryString("count") 'Antalet af varen man vil købe
  Session("vare") = vare2
else
  vare2=session("vare")
  incart=false
  for i=lbound(vare2) to ubound(vare2)
    if vare2(i,0)="" and vare2(i,1)="" and not(incart) then
      vare2(1,0) = Request.QueryString("item")  'Vare nr eller anden ID
      vare2(1,1) = Request.Querystring("size")  'Størrelse
      vare2(1,2) = Request.QueryString("color") 'Farven
      vare2(1,3) = Request.QueryString("count") 'Antalet af varen man vil købe
      incart=true
    end if
  next
  session("vare")=vare2
end if
Avatar billede eagleeye Praktikant
23. juli 2002 - 23:08 #7
Noget andet inspration kunne være ved brug af et dictionary object, se mere her:
http://www.asp101.com/samples/shopping.asp
Avatar billede loukas Mester
23. juli 2002 - 23:48 #8
OK, jeg kigger lidt på det i morgen ;-)
Jeg har kigget på asp101's sample, men jeg er ikke dygtig nok til at
gennemskue koden :-(

Jeg havde regnet med at skulle til det med array, så nu må jeg få det lært
Avatar billede eagleeye Praktikant
23. juli 2002 - 23:57 #9
Ok. Ja jeg tror det gør det lettere for dig selv, hvis du er helt på bar bund med arrays så tag et hurtigt kig her: http://www.html.dk/tutorials/asp/lektion8.asp
Avatar billede loukas Mester
24. juli 2002 - 22:04 #10
Med det array du gav som eksempel.
Når der ligges en ny vare i kurven overskriver den så ikke den gamle ???

Hvis nej.
Hvordan udskriver jeg så alle varer i kurven ???
Jeg har ptøvet med:
Response.Write vare2(1,0) & "<br>"
Response.Write vare2(1,1) & "<br>"

men der kommer jo kun én vare

håber at kunne "fange" dig igen <--- eagleeye ---  ;-)
Avatar billede eagleeye Praktikant
24. juli 2002 - 22:08 #11
uha ... jeg har skrevet forkert i else delen det skal være i man bruger og ikke 1:

If IsArray(Session("vare")) = false Then
  Dim vare2(19,3)   
  vare2(1,0) = Request.QueryString("item")  'Vare nr eller anden ID
  vare2(1,1) = Request.Querystring("size")  'Størrelse
  vare2(1,2) = Request.QueryString("color") 'Farven
  vare2(1,3) = Request.QueryString("count") 'Antalet af varen man vil købe
  Session("vare") = vare2
else
  vare2=session("vare")
  incart=false
  for i=lbound(vare2) to ubound(vare2)
    if vare2(i,0)="" and vare2(i,1)="" and not(incart) then
      vare2(i,0) = Request.QueryString("item")  'Vare nr eller anden ID
      vare2(i,1) = Request.Querystring("size")  'Størrelse
      vare2(i,2) = Request.QueryString("color") 'Farven
      vare2(i,3) = Request.QueryString("count") 'Antalet af varen man vil købe
      incart=true
    end if
  next
  session("vare")=vare2
end if
Avatar billede eagleeye Praktikant
24. juli 2002 - 22:11 #12
du kan udskrive på denne måde:


Response.write "<table>"
Response.write "<tr><td>Vare nr.</td><td>størrelse</td><td>farve</td><td>antal</td></tr>"
for i=lbound(vare2) to ubound(vare2)
  Response.write "<tr>"
  Response.write "<td>" & vare2(i,0) & "</td>"
  Response.write "<td>" & vare2(i,1) & "</td>"
  Response.write "<td>" & vare2(i,2) & "</td>"
  Response.write "<td>" & vare2(i,3) & "</td>"
  Response.write "</tr>"
next
Response.write "</table>"
Avatar billede loukas Mester
24. juli 2002 - 22:39 #13
først ligger jeg varenr. 80 i kurven, det virker (fint)
når jeg ligger en vare mere i kurven forsvinder den første jeg lagde i. ???

jeg vil gerne kunne ligge flere forskellige varer i
Avatar billede eagleeye Praktikant
24. juli 2002 - 22:47 #14
har du prøvet at ændre det til det sidste i kommentar (24/07-2002 22:08:53)
Avatar billede loukas Mester
24. juli 2002 - 23:03 #15
arrgh, nej det har jeg ikke :-)

det gør jeg nu
Avatar billede loukas Mester
25. juli 2002 - 10:27 #16
Jeg bliver ved :-)

Jeg har forsøgt at få den til at lægge antal varer sammen i stedet for at oprette en ny hver gang.
men jeg må skulle kontrollere om varen er i kurven først. og så lægge 'count' til hvis den gør ??


else
  vare2=session("vare")
  incart=false
  for i=lbound(vare2) to ubound(vare2)
    if vare2(i,0)="" and vare2(i,1)="" and not(incart) then
      vare2(i,0) = Request.QueryString("item")  'Vare nr eller anden ID
      vare2(i,1) = Request.Querystring("size")  'Størrelse
      vare2(i,2) = Request.QueryString("color") 'Farven
      vare2(i,3) = vare2(i,3) + Request.QueryString("count") 'Antalet af varen man vil købe
      incart=true
    end if
  next
  session("vare")=vare2
Avatar billede eagleeye Praktikant
25. juli 2002 - 12:16 #17
Ja så skal man kigge om varen er i kurven først. Så skal du tjekke på på om Vare nr er i arrayet. Hvad med Størrelse og Farve ???



else
  vare2=session("vare")
  incart=false
  for i=lbound(vare2) to ubound(vare2)
    if vare2(i,0) = Request.QueryString("item") and not(incart) then
      'Opdater Countet
      vare2(i,3) = vare2(i,3) + Request.QueryString("count") 'Antalet af varen man vil købe
      incart=true
    end if
    if vare2(i,0)="" and vare2(i,1)="" and not(incart) then
      'Ligger nu vare i kurven
      vare2(i,0) = Request.QueryString("item")  'Vare nr eller anden ID
      vare2(i,1) = Request.Querystring("size")  'Størrelse
      vare2(i,2) = Request.QueryString("color") 'Farven
      vare2(i,3) = Request.QueryString("count") 'Antalet af varen man vil købe
      incart=true
    end if
  next
  session("vare")=vare2
end if
Avatar billede loukas Mester
25. juli 2002 - 18:39 #18
du har ret med størrelse og farve.
Jeg har gjordt således, og det ser ud til at virke.
    if vare2(i,0) = Request.QueryString("item") AND vare2(i,1) = Request.Querystring("size") AND vare2(i,2) = Request.Querystring("color") and not(incart) then
      'Opdater Countet
      vare2(i,3) = vare2(i,3) + CInt(Request.QueryString("count")) 'Antalet af varen man vil købe
      incart=true
    end if
Avatar billede loukas Mester
25. juli 2002 - 18:43 #19
Jewg kan snart ikke finde på mere at spørge om :-)
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