webForumDet fria alternativet

Ta bort bananer...

ASP

20 svar · 336 visningar · startad av nachip

Medlem sedan aug. 200150 inlägg
Frågan#1

Yo!

Jag håller på med en kundvagn där jag lägger varorna i en cookie. Mitt problem är att jag inte vet hur jag ska lösa det när man tar bort en vara ur kundvagnen.

Vi säger t ex. att Kalle lägger två bananer i kundvagnen, men upptäcker senare att han bara vill ha en banan. Hur tar jag då bort den utan att tömma hela cookien?

.nachip

Medlem sedan mars 20014 214 inlägg
#2

Lite kod tack

...fast jag tycker inte det är så smart med cokies om man ska kunna handla på olika datorer...

Medlem sedan aug. 200150 inlägg
#3

ja, du... jag har inte så mycket kod att visa än... ;)

Varför tycker du inte att cookies är så smart?

Medlem sedan okt. 20005 273 inlägg
#4

nachip>>testa att sök lite på kundkorg, cookies etc etc ;)

du kommer att hitta massor :)

------------------
Korvfarbror--Med ring på fingret

Medlem sedan aug. 200150 inlägg
#5

testa att sök lite på kundkorg, cookies etc etc

Du vet inte med andra ord ;)

Jo, jag har faktist sökt men inte hittat nåt vettigt svar... testa själv och sök på cookies och se hur många träffar du får upp. Vill du gå igenom alla åt mig? :)

Medlem sedan mars 20016 260 inlägg
#6

nu är jag inte så bevandrad inom webbshopar men jag vet hur jag hade gjort:
använt cookien till en temp databas där alla produkter gäller. när han editerar bananer så ändra man bara mängden på dom.

förstår inte problemet egentligen, vilket kanske märks =) ..fast det är ju inte så enkelt utan nån kod :)

------------------
-------------------
Andreas Lännerberg
Jag hör till dom som betalar mina räkningar med glädje, men dom vill hellre ha betalt i pengar.

Medlem sedan aug. 200150 inlägg
#7

Tycker vi förenklar frågan. :)

Har två bannaner i en cookie, vill ta bort en. Hur?

Medlem sedan feb. 20012 412 inlägg
#8

Hej!

Response.Cokies("Varukorg")("banan") = 1

Under förutsättning att kakan heter varukorg, och "posten" banan i kakan heter banan.

obs! kakor stavas med 2 o :)

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

Medlem sedan aug. 200150 inlägg
#9

I mitt fall heter posten "produkt". Jag kan ju inte ha en unik post för varje produkt... då blir det ju ett himla krångel att anropa dom i kundvagnen...

Response.Cokies("varukorg")("banan") = 1

Om jag använder detta... Hur ska kundvagnen då veta att den ska anropa just den posten? Det finns ju andra produkter än bananer... :)

[Redigerat av nachip den 30 sep 2001]

Medlem sedan okt. 20005 273 inlägg
#10

Det är det som är problelmet med cookies, antag följande att du har köpt två bananer och två äpplen:

Response.Cokies("varukorg")("banan") = 2
Response.Cokies("varukorg")("applen") = 2

om du sen vill ta bort en banan så måste du skriva om hela cookien för det går inte att ta bort bara en del av cookien :( tråkigt men sant

------------------
Korvfarbror--Med ring på fingret

Medlem sedan juli 20011 084 inlägg
#11

okej varför skriver ni Cokies?? Ni kan ju lura nya användare?? det heter ju cookies?

Medlem sedan dec. 200012 464 inlägg
#12

Försök att skriva response.&#67ookies

------------------
essentitia preter non sans multiplicandum

Medlem sedan feb. 20012 412 inlägg
#13

Mozilla, för detta forumet gillar inte när vissa skriver kaka på riktigt sätt.

mvh Jörgen :(

------------------
Varför bråka när man kan kramas?

Medlem sedan mars 20014 214 inlägg
#14

Det vore bättre om beställningar lagrades i en databas så att man från vilken dator som helst skulle kunna logga in och se sina beställningar och ändra dom mm.

Medlem sedan dec. 19991 606 inlägg
#15

Då krävs det väl att användaren/kunden reg. sig först innan de börjar att handla eller?

Vad man än gör så borde ju all data lagars i en db i slutet. :)

------------------
Forumledare, webForum

Medlem sedan aug. 200150 inlägg
#16

Jo.. precis som Hallgren säger så ska självklart själva beställningen lagras i en databas, men inte förrän beställningen är slutförd. Medans man handlar så lagras "kundvagnen" i en cookie var det tänkt...

Medlem sedan juni 20008 205 inlägg
#17

Det är ingen vidare bra idé. Det finns begränsningar på hur mycket kakor en webbläsare får/vill spara på hårddisken.

------------------
And remember, when you look into the pit, the pit looks back into you. /Anonymous INTERCAL hacker

Medlem sedan mars 20002 836 inlägg
#18

Men, om man endast sparar ProduktID och antal så blir det en jäkla massa produkter man kan spara i en cookie.

Ska kika efter lite kod för att hantera kundvagnen.

cya,
PatrikB

------------------
*ordning och reda!, pengar på fredag.*

Medlem sedan dec. 19991 606 inlägg
#19

Mmm, tycker det här börjar bli konstigt. När man går igenom lite inlägg angående just sånt här så får man en känsla av att många är för cookies och session men nu verkar det rent av suga. :l

Om ni själva skulle bygga en kundvagn, hur skulle ni då göra?

------------------
Forumledare, webForum

Medlem sedan mars 20002 836 inlägg
#20

Ja, själv skulle jag ju inte spara kundvagnen i Sessions men väl i .&#67ookies

"Lite" exempel kod:

'## -- Function GetBasket(): returns the basket as a 2-dimensional array
'##    if any products are found in basket. else it returns an empty string
'## -- varArray(0,N) = ProdID of a product --
'## -- varArray(1,N) = Items (Total ordered items of a sample product 
'--------------------------------------------------------------------------
Function GetBasket()
	Dim varBasket
	Dim varBasketArray()
	Dim intKeys, intCounter, N
	Dim Key
	
	'## -- get all items in basket --
	Set varBasket = Request.&#67ookies("Shop")
	
	'## -- check if basket contain any products --
	If varBasket.HasKeys Then
		intKeys = varBasket.Count - 1
		ReDim varBasketArray(1,intKeys)
		
		intCounter = 0
		
		For Each Key IN varBasket
			'## -- save values into an array --
			varBasketArray(0,intCounter) = Key	'## -- save prodid in first pos.
			varBasketArray(1,intCounter) = Request.&#67ookies("Shop")(Key) '## -- total item of the product --
			
			intCounter = intCounter + 1
		Next
		
		'## -- return basket array --
		GetBasket = varBasketArray
	Else
		GetBasket = ""
	End If
End Function

'## -- add new product to basket --
Sub AddToBasket(ByVal ProdID, ByVal Items)
	Dim varBasket, varItems
	Dim Key
	Dim blnFound
	
	'## -- set default value to not found in basket (cookie) --
	blnFound = False
	
	'## -- try to get cookie of selected product --
	Set varBasket = Request.&#67ookies("Shop")
	
	'## -- check if cookie has keys --
	If varBasket.HasKeys Then
	
		'## -- cookie has keys (products in basket). check for prodid key --
		For Each Key IN varBasket
			If Key = "" & ProdID & "" Then
				blnFound = True
				'## -- prodid found in shopbasket (cookie). get items. --
				varItems = Request.&#67ookies("Shop")(Key)
				
				'## -- check if the key is empty. if empty set value to 0 (no products in key)--
				If Len(varItems) = 0 Then varItems = 0
				
				'## -- add more items to prodid --
				varItems = varItems + Items
				
				'## -- save new value to basket (cookie) --
				Response.&#67ookies("Shop")("" & ProdID & "") = varItems
			End If
		Next
		
		'## -- check if prodid was found --
		If blnFound = False Then
			'## -- prodid not found in basket (cookie). add prodid and items to basket (cookie) --
			Response.&#67ookies("Shop")("" & ProdID & "") = Items
		End If
	Else
		'## -- create basket (cookie) and save prodid to basket --
		Response.&#67ookies("Shop")("" & ProdID & "") = Items
	End If
	
	'## -- set expire date for cookie --
	Response.&#67ookies("Shop").Expires = DateAdd("d",365,Now())
End Sub

'## -- remove a product from basket (removes one item of a product) --
Sub RemoveFromBasket(ByVal ProdID)
	Dim varItem
	
	varItem = Request.&#67ookies("Shop")("" & ProdID & "")
	
	'## -- subtract
	varItem = varItem - 1
	
	'## -- check if varItem is bigger than 0 --
	If varItem > 0 Then
		'## -- items left in basket --
		Response.&#67ookies("Shop")("" & ProdID & "") = varItem
	Else
		'## -- set to 0
		Response.&#67ookies("Shop")("" & ProdID & "") = ""
	End If
End Sub

Ingen felhantering är inbyggd, ej heller det totala priset m.m men väl en grund att utgå ifrån.

cya,
PatrikB

------------------
*ordning och reda!, pengar på fredag.*

251 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)