Svårt problem :l
Kundkorgen nedan fungerar när man lägger i första varan. Man kan sedan även ändra varan antal. Det går även bra att lägga till ytterligare en vara, MEN SEN kommer problemet.
Försöker jag ändra antalet i någon av de två inlagda produkterna så skapas istället en tredje kolumn med BÅDA de andra kolmunernas värde i.
Nu är det inte bara jag som gått bet på detta så det är dags att visa att du är kung på wF ;)
<%
Option Explicit
Response.Buffer = True
Dim prod_id, prod_antal, prod_vara, prod_pris
Dim korgen, i, varuid, varupris, varunamn, varuantal, varusumma, slutsumma
%>
<html>
<head>
<title>Varukorgen</title>
<style type="text/css">
body{font-family: verdana; font-size: 10px; color: #b6cded; background: black;}
td {font-family: verdana; font-size: 10px; color: #b6cded; background: #37646f}
input {color: black; height: 18px; font-family: verdana; font-size: 10px;}
</style>
</head>
<body><br><br><center>
<%
'--- Detta avsnitt kollar om någon vara ska läggas till, ändras eller tas bort ---
If Request.Form("action") = "OK" Then
prod_id = Request.Form("id1")
prod_antal = Request.Form("antal1")
prod_vara = Request.Form("vara1")
prod_pris = Request.Form("pris1")
Call plocka_vara(prod_id, prod_antal, prod_vara, prod_pris)
ElseIf Request.form("action") = "Ändra" Then
prod_id = Request.Form("id2")
prod_antal = Request.Form("antal2")
prod_vara = Request.Form("vara2")
prod_pris = Request.Form("pris2")
Call plocka_vara(prod_id, prod_antal, prod_vara, prod_pris)
End If
%>
<form action="korgen3.asp" method="post">
<%
'# -- Bara som koll av vad som returneras --
Response.Write "ID = "&prod_id&" , VARA = "&prod_vara&" , PRIS = "&prod_pris&" , ANTAL = "&prod_antal
%><br><br>
<table border=0 width=470 cellpadding=2><tr><td height=25 colspan=6 align=center valign=middle>
<b>Din kundkorg innehåller just nu följande varor</b>
</td></tr><tr>
<td> <b>Vara</b></td><td align=center><b>Pris/st</b></td><td align=center><b>Summa</b></td><td align=center><b>Ant.</b></td><td colspan=2> </td>
</tr><tr>
<%
korgen = hamta_korgen()
If IsArray(korgen) Then
For i = 0 To Ubound(korgen,2)
varuid = korgen(0,i)
varupris = korgen(1,i)
varunamn = korgen(2,i)
varuantal = korgen(3,i)
varusumma = varupris * varuantal
slutsumma = slutsumma + varusumma
If varuid = "0" Then
Response.Write ""
Else
Response.Write "<td> " & varunamn & "</td>"&_
"<td width=55 align=right>" & varupris & ":- </td>"&_
"<td width=55 align=right>" & varusumma &":- </td>"&_
"<td width=30 align=center><input type=text size=2 name=antal2 value=" & varuantal &" style='background: #cccccc;'></td>"&_
"<input type=hidden name=id2 value=" & varuid & ">"&_
"<input type=hidden name=vara2 value=" & varunamn & ">"&_
"<input type=hidden name=pris2 value=" & varupris& ">"&_
"<td width=55 align=center> <input type=submit name=action value='Ändra'>"&_
"</td>"&_
"<td width=65 align=center> <input type=button value='Ta bort'></td></tr><tr>"
End If
Next
Response.Write "<td colspan=6> </td></tr><tr><td colspan=4 align=left><b> Total summa " & slutsumma &" kr</b></td><td align=center colspan=2><input type=submit name=submit value='Gå till kassan'></td>"
Else
Response.Write "<td colspan=6 height=40 valign=middle align=center><b>Korgen är tom</b></td>"
End If
'---------------------------------------------------------------------------------
%>
</td></tr></table>
</form>
<br><br>
<a href="dofter.asp">Doftavdelningen</a>
<br><br>
<a href="smycken.asp">Smyckesavdelningen</a>
<br><br>
<a href="index.html">Startsidan</a> <a href="korgen3.asp">Kundkorgen</a>
</center>
</body>
</html>
<%
'--- Funktion som hämtar, läser av och skapar en array av korgen/kakan ------
Function hamta_korgen()
Dim korg, infoarray(), key, prod_id
Dim innehall, raknare
Set korg = Request.Cokies("butiken")
If korg.HasKeys Then
innehall = (korg.Count/4) - 1
ReDim infoarray(3,innehall)
raknare = 0
For Each key In korg
If InStr(1,key,"ID") > 0 Then
prod_id = Left(key,Len(key) - 2)
infoarray(0,raknare) = korg(prod_id & "id")
infoarray(1,raknare) = korg(prod_id & "pris")
infoarray(2,raknare) = korg(prod_id & "vara")
infoarray(3,raknare) = korg(prod_id & "antal")
raknare = raknare + 1
End If
Next
hamta_korgen = infoarray
Else
hamta_korgen = ""
End If
End function
'--------------------------------------------------------------------------------------
'--- Subrutin för att lägga vara i eller ändra i korgen ------------------------------------
Sub plocka_vara(prod_id, prod_antal, prod_vara, prod_pris)
Dim korg, key
Dim hittat
Dim antalet
hittat = False
'## -- hämta alla nycklar i vår kundkorg som sparats i en cokie --------------------
Set korg = Request.Cokies("butiken")
'## -- kontrollera om det finns några produkter --
If korg.HasKeys Then
For Each key IN korg
If key = prod_id & "id" Then
hittat = True
antalet = korg(prod_id & "antal")
'## -- räkna upp antal av produkten --
antalet = CLng(antalet) + CLng(prod_antal)
'## -- spara nya värdet i kakan/korgen igen --
Response.Cokies("butiken")("" & prod_id & "antal") = antalet
End If
Next
If hittat = False Then
'## -- lägg till en ny vara i korgen --
Response.Cokies("butiken")(prod_id & "id") = "" & prod_id & ""
Response.Cokies("butiken")(prod_id & "pris") = "" & prod_pris & ""
Response.Cokies("butiken")(prod_id & "vara") = "" & prod_vara & ""
Response.Cokies("butiken")(prod_id & "antal") = "" & prod_antal & ""
Response.Cokies("butiken").Expires = DateAdd("d",365,Now())
End If
Else
Response.Cokies("butiken")(prod_id & "id") = ""& prod_id &""
Response.Cokies("butiken")(prod_id & "pris") = ""& prod_pris &""
Response.Cokies("butiken")(prod_id & "vara") = ""& prod_vara &""
Response.Cokies("butiken")(prod_id & "antal") = ""& prod_antal &""
Response.Cokies("butiken").Expires = DateAdd("d",365,Now())
End If
End Sub
'---------------------------------------------------------------------------------------
%>
/webb
------------------
För nyfikna