Godt nytår til alle
Jeg har et problem med en webshop jeg er ved at lave. Den kan ses på:
http://matematik.lir.dk/musclegain/docs/webshop.htm
Fejlen består som det kan ses i at hvis man vælger f.eks. "Protein 40" fire
gange og bagefter protein 70 så giver den også 4 stk. der. Det er jo ikke
meningen. Jeg har gemt bestillingerne i Session("Bestilling") som vises på
siden. Meningen er så at de forskellige varer bliver adskilt med et komma.
Det skal så være meningen at den alt efter hvor mange gange et bestemt
varenr gentager sig skriver antallet. Men kan ikke overskue hvordan jeg skal
gøre det rigtigt.
Kode:
webshop.asp
<!--- #include file="include/conn.asp" -->
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"><LINK
href="css/styles.css" type=text/css rel=stylesheet>
<%
IF Request.Querystring("type") = 1 THEN
Response.Write("<p>Webshop</p>")
strSQL = "SELECT * FROM Varer ORDER By Prioritet"
Set rs = Conn.Execute(strSQL)
DO WHILE NOT rs.EOF
Response.Write("<a href=""opdaterbestilling.asp?varenr="&rs("Varenr")&"""
target=""mainFrame"">"&rs("Navn")&"</a><br>")
rs.Movenext
LOOP
Response.Write("<br><br><br><a href=""opdaterbestilling.asp?sletsession=ja""
target=""mainFrame"">Slet session</a>")
ELSE
VareArray = Split(Session("Bestilling"),",")
for i = 0 to ubound(varearray)
if varearray(i) <> "" THEN
Antal = i+1
END IF
next
Dim varer
Set varer = CreateObject("Scripting.Dictionary")
for i = 0 to Antal-1
IF varer.Exists(varearray(i)) THEN
varer.item(varearray(i)) = varer.item(varearray(i))+1
ELSE
Varer. Add varearray(i),"1"
END IF
next
Response.Write("<body style=""background-image: url(billeder/baggrund.jpg);
background-repeat: no-repeat;""></body>")
Response.Write("<table>")
Response.Write("<tr><td width=""150""><p><b>Produkt</b></p></td><td
width=""120""><p><b>Antal</b></p></td><td><p><b>Pris</b></p></td></tr>")
IF Session("Bestilling") = "" THEN
Response.Write("<tr><td></td><td></td><td></td></tr>")
Response.Write("<tr><td><p>Indkøbskurven er
tom.</p></td><td></td><td></td></tr>")
ELSE
for i = 1 to varer.count-1
Response.Write("<tr><td><p><a
href=""opdaterbestilling.asp?slet=ja&varer="&varearray(i)&"""
target=""mainFrame"">"&varearray(i)&"</a></p></td><td><p>"&varer.Item(varear
ray(i))&"</p></td><td><p></p></td></tr>")
next
Response.Write("</table>")
Response.Write("<p
style=""margin-left:10px;"">"&Session("Bestilling")&"</p>")
END IF
END IF
'Response.Write("<tr><td><p><a
href=""opdaterbestilling.asp?slet=ja&varer="&varearray(i)&"""
target=""mainFrame"">"&varearray(i)&"</a></p></td><td><p>"&varer.Item(varear
ray(i))&"</p></td><td><p></p></td></tr>")
'Response.Write("<tr><td><p><a
href=""opdaterbestilling.asp?slet=ja&varer="&varearray(i)&"""
target=""mainFrame"">"&varearray(i)&"</a></p></td><td><p>"&varer.Item(varear
ray(i))&"</p></td><td><p></p></td></tr>")
%>
<!--- #include file="include/connoff.asp" -->
opdaterbestilling.asp:
<!--- #include file="include/conn.asp" -->
<%
IF Request.Querystring("sletsession") = "ja" THEN
Session("Bestilling") = ""
Response.Redirect("webshop.asp?type=2")
END IF
IF Request.Querystring("slet") = "ja" THEN
strVarer = Request.Querystring("varer")
strVarer = ","&strVarer
Session("Bestilling") = Replace(Session("Bestilling"),strVarer, "", 1, 1)
END IF
strVarenr = Request.Querystring("varenr")
IF strVarenr = "" THEN
ELSE
IF Session("Bestilling") = "" THEN
Session("Bestilling") = ","&strVarenr
ELSE
Session("Bestilling") = Session("Bestilling")&","&strVarenr
END IF
END IF
Response.Redirect("webshop.asp?type=2")
%>
<!--- #include file="include/connoff.asp" -->
Håber nogle kan give en hånd. Tusinde tak!!
--
Flemming Jensen