webForumDet fria alternativet

Webshop m sessioner

ASP

29 svar · 779 visningar · startad av ironhead

Medlem sedan mars 20011 346 inlägg
Frågan#1

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?

Medlem sedan dec. 20003 563 inlägg
#2

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), ",")
Medlem sedan mars 20011 346 inlägg
#3

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 |
Medlem sedan dec. 20003 563 inlägg
#4

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 ;)
Medlem sedan mars 20011 346 inlägg
#5

Tack cyprys...ska testa lite.

Medlem sedan mars 20011 346 inlägg
#6

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...

Medlem sedan dec. 20003 563 inlägg
#7

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))
Medlem sedan mars 20011 346 inlägg
#8

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?

Medlem sedan dec. 20003 563 inlägg
#9

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")
Medlem sedan mars 20011 346 inlägg
#10

...kan tyvärr inte använda cookies...

Medlem sedan nov. 20017 144 inlägg
#11

Om du inte kan använda cookies, vad är det då som gör att du kan använda sessions?

Medlem sedan mars 20011 346 inlägg
#12

...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...

Medlem sedan juni 200032 967 inlägg
#13

Eftersom användandet av sessions påtvingar klienten en cookie i alla fall, så slipper du inte undan.

Medlem sedan dec. 20003 563 inlägg
#14

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. ;)

Medlem sedan mars 20011 346 inlägg
#15

Damn ;)

Medlem sedan mars 20011 346 inlägg
#16

Varför funkar inte detta?`

<a href="#" onClick="<%Response.Write "uppdateraKundvagn (""15"",""Brevduva"",""18"",""4.50"",""Addera"",""testcookie"")"%>">Artikel 15</a>
Medlem sedan nov. 20017 144 inlägg
#17
<%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. :)

Medlem sedan mars 20011 346 inlägg
#18

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

Medlem sedan nov. 20017 144 inlägg
#19

Och hur ser det ut i javascriptet då?

Medlem sedan mars 20011 346 inlägg
#20

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.

266 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)