Du kan ju spara det i liknande format.
"ArtID,Antal;ArtID,Antal"
Ex.
arrVaror = "128,2;144,1"
arrVarjeVara = split(arrVaror, ";")
och sen splitta vid "," för antal och ID
arrVaran = split(arrVarjeVara(0), ",")
29 svar · 779 visningar · startad av ironhead
Tjolahopp!
Jag tänkte göra en webshop mha sessioner eftersom det kommer att vara få användare & lite artiklar känns det överdrivet med en databas.
Jag tänkte använda frameset där artiklarna är i en frame och kundvagnen i 1.
Frågan är:
Ska jag lagra alla artiklar i ett enda sessionsobjekt eller Artikelnummer för sig, Artikel för sig etc.
...och hur blir det när man vill ändra antal på en vara?
Hur ska man gå tillväga?
Du kan ju spara det i liknande format.
"ArtID,Antal;ArtID,Antal"
Ex.
arrVaror = "128,2;144,1"
arrVarjeVara = split(arrVaror, ";")
och sen splitta vid "," för antal och ID
arrVaran = split(arrVarjeVara(0), ",")
Problemet är att när jag lägger till en vara till kundvagnen, laddas den sidan om...och varan får antal=1 som standard...om jag nu vill spara antal i kundvagnen...hur ska jag spara ner det då innan jag går till kassan?
Artikelnummer | Artikel | Antal | á Pris |
Så som jag sa.
VaruID = request.form("ArtID")
VaruAntal = request.form("ArtAntal")
nån fiffig funktion som sparar ner dessatvå värden i
något format enligt metoden jag beskrev ovan
exempelvis.
session("kundvagn") = session("kundvagn") & VaruID & "," & VaruAntal & ";"
Fast mycket bättre då såklart ;)
Tack cyprys...ska testa lite.
Får inte till det....vet inte hur jag ska kunna uppdatera antal så att det hamnar på rätt ställe så man kan fortsätta handla...
Redigerat så det funkar nu! :)
Blev lite kul att skriva koden faktiskt.
Denna funkar och du kan ju testa med mina körexempel efter.
function uppdateraKundvagn(ArtikelID, Artikel, Antal, PrisSt, Handelse, CookieNamn)
select case Handelse
case "UppdateraVara", "Radera"
hittaArtikel ArtikelID, Artikel, Antal, PrisSt, Handelse, CookieNamn
case "Addera"
response.cookies(CookieNamn) = request.cookies(CookieNamn) & skapaArtikelStrang(ArtikelID, Artikel, Antal, PrisSt)
end select
end function
sub hittaArtikel(ArtikelID, Artikel, Antal, PrisSt, Handelse, CookieNamn)
Dim i, arrArtiklar, arrArtiklarInfo
i = 0
arrArtiklar = split(request.cookies(CookieNamn), ";")
response.cookies(CookieNamn) = ""
for i = lbound(arrArtiklar) to ubound(arrArtiklar) - 1
arrArtiklarInfo = split(arrArtiklar(i), ",")
if arrArtiklarInfo(0) = ArtikelID then
select Case Handelse
case "UppdateraVara"
response.cookies(CookieNamn) = request.cookies(CookieNamn) & skapaArtikelStrang(ArtikelID, Artikel, Antal, PrisSt)
case "Radera"
case else
response.cookies(CookieNamn) = request.cookies(CookieNamn) & arrArtiklar(i) & ";"
end select
else
response.cookies(CookieNamn) = request.cookies(CookieNamn) & arrArtiklar(i) & ";"
end if
next
end sub
function skapaArtikelStrang(ArtikelID, Artikel, Antal, PrisSt)
skapaArtikelStrang = ArtikelID & "," & Artikel & "," & Antal & "," & PrisSt & ";"
end function
response.Cookies("testcookie") = ""
response.Write("print! " & request.Cookies("testcookie") & "<br/>" & chr(10))
uppdateraKundvagn "142", "Brevbärare", "2", "99.50", "Addera", "testcookie"
response.Write("print! " & request.Cookies("testcookie") & "<br/>" & chr(10))
uppdateraKundvagn "15", "Brevduva", "1800", "9", "Addera", "testcookie"
response.Write("print! " & request.Cookies("testcookie") & "<br/>" & chr(10))
uppdateraKundvagn "15", "Brevduva", "1800", "9", "Radera", "testcookie"
response.Write("print! " & request.Cookies("testcookie") & "<br/>" & chr(10))
uppdateraKundvagn "142", "Brevbärare", "6", "99.50", "UppdateraVara", "testcookie"
response.Write("print! " & request.Cookies("testcookie") & "<br/>" & chr(10))
Jo, tack för det...det funkar utmärkt.....men hur gled vi ifrån Sessioner till cookies?
Kan tyvärr inte använda cookies....går detta att "konvertera" till att använda sessioner?
Det är med lite modifikation _exakt_ samma hantering som med sessions.
Bara det att sessions lägger sig i datorns _minne_ medans cookies spars i cachen på klienten istället.
Därför föredrar många att arbeta med cookies istället för sessions, då man slipper oroa sig om att använda för mycket minne av servern.
Lite strömläsning om cookies finnes här.
http://www.idg.se/webstudio/pub/article.asp?id=97
Och som sammanfattning
'Skriva till en cookie
response.cookies("namn") = "värde"
' Hämta från en cookie
value = request.cookies("namn")
...kan tyvärr inte använda cookies...
Om du inte kan använda cookies, vad är det då som gör att du kan använda sessions?
...eller kan å kan...på begäran att inte använda cookies....för informationens skull...att man måste ha text om att cookies används...
Eftersom användandet av sessions påtvingar klienten en cookie i alla fall, så slipper du inte undan.
Och eftersom du använder asp, och asp automatiskt skapar en sessionID för varje användare, och som @nders säger: även session skapar en cookie, så är det nog kört att slippa det där meddelandet hur som helst. ;)
Damn ;)
Varför funkar inte detta?`
<a href="#" onClick="<%Response.Write "uppdateraKundvagn (""15"",""Brevduva"",""18"",""4.50"",""Addera"",""testcookie"")"%>">Artikel 15</a>
<%Response.Write "uppdateraKundvagn ('15','Brevduva','18','4.50','Addera','testcookie')"%>
Igentligen är det ju svårt att svara på den frågan eftersom att du inte beskriver problemet. Men jag gissar att det har att göra med ett javascriptfel. Strängar måste omslutas av enkelfnuttar när du kallar på en funktion så där. :)
Då får jag..."Ett objekt förväntas rad 1 tecken 1" på denna rad:
<a href="#" onClick="uppdateraKundvagn ('15','Brevduva','18','4','Addera','testcookie')">Artikel 15</a>
Länken ser ut såhär:
<a href="#" onClick="<%Response.Write "uppdateraKundvagn ('15','Brevduva','18','4.50','Addera','testcookie')"%>">Artikel 15</a>
Inget värde lägg till i kakan
Och hur ser det ut i javascriptet då?
Oops! Sorry....jag ska anropa VBScriptet..hur gör jag då?
Jag vill ju nu kunna lägga till/ta bort/uppdatera kundvagnen från cyprys eminenta skript mha av en länk från mina artiklar.