hi all
i have built this cart using a well known asp help book, but i am having trouble changing a few things about to customise it more.
Could some please tell me why i need the '2' in the following:
FOR i = 0 TO UBOUND (localCart, 2)
is it purely because it is the second time i have referenced it in the code?
also i want to pass hidden fields for each column in my array (id, artist, title etc) it works as it is but if i leave the line as
FOR tq = 0 TO UBOUND( localCart, 2 )
i and up sending across about 50 lots of empty hidden fields
and if i change to
FOR tq = 0 TO UBOUND( localCart, 1 )
i send about 5 lots of hidden fields, obviousdly this is better but all i want is to send across only the amount that is in the shaopping basket?!
can anyone help - code is below, sorry for the lengh, i have tried to cut out any useless html for this post.
thanks
mark
<%
'define constants
CONST CARTPID = 0
CONST CARTPARTIST = 1
CONST CARTPPRICE = 2
CONST CARTPQUANTITY = 3
CONST CARTPTITLE = 4
CONST CARTPFORMAT = 5
'get the shopping cart
IF NOT isArray (Session("cart")) THEN
DIM localCart(5,20)
ELSE
localCart = Session("cart")
END IF
'get product information
productID = TRIM(request("pid"))
catID = TRIM(request("catID"))
artist = TRIM(request("artist"))
title = TRIM(request("title"))
format = TRIM(request("format"))
price = TRIM(request("price"))
'add to cart
IF productID <> "" THEN
foundIT = FALSE
FOR i = 0 TO UBOUND (localCart, 2)
IF localCart( CARTPID, i ) = productID THEN
localCart ( CARTPQUANTITY, i ) = localCart (CARTPQUANTITY, i) + 1
foundIT = TRUE
EXIT FOR
END IF
NEXT
IF NOT foundIT THEN
FOR i = 0 TO UBOUND (localCart, 2)
If localCart(CARTPID, i ) = "" THEN
localCart (CARTPID, i) = productID
localCart (CARTPARTIST, i) = artist
localCart (CARTPTITLE, i) = title
localCart (CARTPFORMAT, i) = format
localCart (CARTPPRICE, i) = price
localCart (CARTPQUANTITY, i) = 1
EXIT FOR
END IF
NEXT
END IF
END IF
' Update Shopping Cart Quantities
IF Request( "updateQ" ) <> "" THEN
FOR i = 0 TO UBOUND( localCart, 2 )
newQ = TRIM( Request( "pq" & localCart( CARTPID, i ) ) )
deleteProduct = TRIM(Request("pd" & localCart (CARTPID,i)))
IF newQ = "" or newQ = "0" or deleteProduct <> "" THEN
localCart( CARTPID, i ) = ""
ELSE
IF isNumeric( newQ ) THEN
localCart( CARTPQUANTITY, i ) = newQ
END IF
END IF
NEXT
END IF
'update Session variable with array
Session ("cart") = localCart
%>
<%
FOR i = 0 TO UBOUND( localCart, 2 )
IF localCart( CARTPID, i ) <> "" THEN
orderTotal = orderTotal + ( localCart( CARTPPRICE, i ) * localCart( CARTPQUANTITY, i ) )
%>
<TR></TR>
<TD align="left" class="bottom_border">
<span class="page-nav-strong"><%=emptycart_msg%><%=Server.HTMLEncode(localCart(CARTPARTIST, i))%></span>
</TD>
<TD align="left" class="bottom_border">
<span class="page-nav-strong"><%=Server.HTMLEncode(localCart(CARTPTITLE, i))%></span>
</TD>
<TD align="left" class="bottom_border">
<span class="page-nav-strong">£<%=FormatNumber(localCart(CARTPPRICE, i))%></span>
</TD>
<TD align="left" class="bottom_border">
<input name="pq<%=localCart(CARTPID, i )%>" type="text" size="4" value="<%=localCart(CARTPQUANTITY, i )%>">
</td>
<TD align="left" class="bottom_border">
<input name="pd<%=localCart(CARTPID, i )%>" type="checkbox" value="1">
<span class="page-nav-strong">Delete Item</span>
<BR><div align="right"><a href="productpage.asp?category=<%=catID%>&productdetail=<%=localCart( CARTPID, i )%>" class="recent_searches">view item....</a></div>
</td>
</TR>
<%
END IF
NEXT
%>
<TR bgcolor="#F4F7FD">
<TD colspan="2" align="right" class="td-top-bottom_border">
<span class="activeCategory"><B>Total:</B></span>
</TD>
<TD align="left" colspan="2" class="td-top-bottom_border">
<span class="page-nav-strong">£<%=FormatNumber(orderTotal)%> + shipping</span>
</TD>
<TD align="left" bgcolor="#ffffff" class="td-top-bottom_border">
<input type="image" img src="assets/images/updatecart.gif">
</form></TD>
</TR>
<TR>
<TD colspan="5"><hr color="#F4F7FD"></td>
</tr>
<TR class="row-top-bottom_border">
<TD align="center">
<a href="default.asp" class="main_nav"><< previous page</a>
</TD>
<td>
</td>
<td> </td>
<%
totalquantity = 0
%>
<%
FOR tq = 0 TO UBOUND( localCart, 2 )
IF localCart( CARTPPID, tq ) <> "" THEN
totalquantity = totalquantity + localCart( CARTPQUANTITY, tq)
END IF
NEXT
%>
<td align="center">
<a href="clearcart.asp" class="main_nav">empty cart</a></td>
<TD>
<div align="center">
<FORM METHOD="post" action="checkout.asp" style="margin-bottom:0;">
<input type="image" img src="assets/images/checkout.gif">
<%FOR i = 0 TO UBOUND( localCart, 1)%>
<input type="hidden" name="idlist" value="<%=Server.HTMLEncode(localCart(CARTPID, i))%>">
<input type="hidden" name="artistlist" value="<%=Server.HTMLEncode(localCart(CARTPARTIST, i))%>">
<input type="hidden" name="titlelist" value="<%=Server.HTMLEncode(localCart(CARTPTITLE, i))%>">
<input type="hidden" name="formatlist" value="<%=Server.HTMLEncode(localCart(CARTPFORMAT, i))%>">
<input type="hidden" name="quantity" value="<%=Server.HTMLEncode(localCart(CARTPQUANTITY, i))%>">
<%NEXT%>
<input type="hidden" name="ordertotal" value="<%=orderTotal%>">
<input type="hidden" name="totalquantity" value="<%=totalquantity%>">
</div></td>
</tr>
<tr>
<td bgcolor="#F4F7FD" valign="top" class="td-top-bottom_border" colspan="5"><span class="activeCategory">You may also like:</span></td></tr>
<%FOR a = 1 TO y%>
<tr>
<td bgcolor="#F4F7FD" valign="top" class="td-top-bottom_border" colspan="1"><%=recommend_image(a)%></td>
<td bgcolor="#F4F7FD" class="td-top-bottom_border" colspan="4"><a href="productpage.asp?category=<%=recommend_catid(a)%>&productdetail=<%=recommend_id(a) %>" class="category1"><%=recommend_artist(a)%> -
<span class="category2"><%=recommend_title(a)%></span></a><P>
<span class="category3"><%=recommend_description(a)%>...</span>[<a href="productpage.asp?category=<%=r