Foros del Web » Programando para Internet » ASP Clásico »

carro de la compra

Estas en el tema de carro de la compra en el foro de ASP Clásico en Foros del Web. Hola a todos A ver si alguien me ayuda, tengo una carro de la compra mejor dicho estoy haciendo , ahora estoy en la parte ...
  #1 (permalink)  
Antiguo 09/06/2005, 22:35
 
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 83
Antigüedad: 21 años, 8 meses
Puntos: 0
carro de la compra

Hola a todos

A ver si alguien me ayuda, tengo una carro de la compra mejor dicho estoy haciendo , ahora estoy en la parte que me guardo en un array de session todos los pedidos que van haciendo, y cuando esté listo haré que dicho array se guarde en la base de datos. Lo tengo montado pero tengo dos problemas :

1. Cada vez que haces F5, te carga otra vez el ultimo pedido ¿como evitar esto?

2. Como puedo hacer, para poder elimina un elemento del array, con la idea, de que el usuario se da cuenta de que un producto que ha cogido no lo quiere.

Os paso el código para que os ayude:



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%
'Set shopping cart constants
Const PRODUCT_ID = 0
Const PRODUCT_NAME = 1
Const PRODUCT_PRICE = 2
Const PRODUCT_QUANTITY = 3
Const ITEM_SUBTOTAL = 4
Const PRODUCT_EMB = 5

Const NUMBER_OF_ITEM_ATTRIBUTES = 7
Const MAX_NUMBER_OF_ITEMS = 20

'Dim module-level array to store contents of shopping cart
dim ShoppingCart
ReDim ShoppingCart(NUMBER_OF_ITEM_ATTRIBUTES - 1, MAX_NUMBER_OF_ITEMS - 1)

Response.Buffer=true

if Session("aut")=false then
response.Redirect("login.asp")
response.write("<script>")
response.write("window.open('login.asp','_blank'); ")
response.write("</script>")
end if

Dim Cantidad, ProductoName, ID, Tarifa, Embalaje

Cantidad = Request.Form("txtCantidad")
ProductoName = Request.Form("hidProductoName")
ID = Request.Form("hidID")
Tarifa = Request.Form("hidTarifa")
Embalaje = Request.Form("hidEmbalaje")

If IsEmpty(Session("ShoppingCart")) Then
Session("ShoppingCart") = ShoppingCart
Session("ItemCount") = 0
Else
ShoppingCart = Session("ShoppingCart")
End If

itemNumber = Session("ItemCount")

if Cantidad = "" then
Cantidad = 1
end if

itemSubTotal = (Cantidad * Embalaje) * Tarifa
ShoppingCart(PRODUCT_ID, itemNumber) = ID
ShoppingCart(PRODUCT_NAME, itemNumber) = ProductoName
ShoppingCart(PRODUCT_PRICE, itemNumber) = Tarifa
ShoppingCart(PRODUCT_QUANTITY, itemNumber) = Cantidad
ShoppingCart(ITEM_SUBTOTAL, itemNumber) = itemSubTotal
ShoppingCart(PRODUCT_EMB, itemNumber) = Embalaje



Session("ShoppingCart") = ShoppingCart
Session("ItemCount") = Session("ItemCount") + 1
%>
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="include/estilo_new.css" rel="stylesheet" type="text/css">
</head>

<body bgcolor="#E3EEFE">
<table cellspacing="2" cellpadding="2" border="1">
<td>Código</td>
<td>Producto Nombre</td>
<td>Precio</td>
<td>Cantidad</td>
<td>SubTotal</td>
<td>Embalajes</td>
<%
totalCost = 0
itemsInCart = Session("ItemCount")

for itemNumber = 0 to itemsInCart
if ShoppingCart(0, itemNumber) <> "" then
ID = ShoppingCart(PRODUCT_ID, itemNumber)
Name = ShoppingCart(PRODUCT_NAME, itemNumber)
price = ShoppingCart(PRODUCT_PRICE, itemNumber)
productQuantity = ShoppingCart(PRODUCT_QUANTITY, itemNumber)
itemSubTotal = ShoppingCart(ITEM_SUBTOTAL, itemNumber)
Embalaje = ShoppingCart(PRODUCT_EMB, itemNumber)

totalCost = totalCost + itemSubTotal
%>
<tr>
<td><%= ID %></td>
<td><%= Name %></td>
<td><%= FormatCurrency(price) %></td>
<td align=center><%= productQuantity %></td>
<td align=center><%= FormatCurrency(itemSubTotal) %></td>
<td align=center><%= Embalaje %></td>
</tr>
<%
End If
next
%>
</table>
<hr>
Número de elemntos en el carro = <%= itemsInCart %> <br>
<h3>Total Pedido = <%= FormatCurrency(totalCost) %></h3>
<hr><center>
<a href="#">Procesar Pedido</a> |
<a href="carro_vista_categoria.asp">Continuar Comprando</a></center>
<br>
</body>
</html>
  #2 (permalink)  
Antiguo 10/06/2005, 00:36
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 23 años, 3 meses
Puntos: 3
sha q tio... primero has tú el código para que te podamos ayudar.. jajaja.. xq todas las variables están en ingles? será copiado? jejeje...
bueno eso del F5 es fácil... puedes crear una session temporal cuando uno entre a la página, tons cuando le den F5 esa session ya debe de existir tons q se saltee la parte en que se agrega el porducto.. aunque lo más recomendable es q se agreguen los productos en otra página, una vez agregado el producto haces el redirect que te manda al carrito de compras (osea a lo q ve el usuario)
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.
  #3 (permalink)  
Antiguo 10/06/2005, 00:50
 
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 83
Antigüedad: 21 años, 8 meses
Puntos: 0
Primero gracias, por contestar, bueno es medio copiado medio mio, y en mi trabajo estamos acostumbrado a usar mucho variables en inglés. Pero ya te digo hay mitad / mitad.

Pero perdona que te diga no me he enterado mucho de lo que me explicas, perdona.
  #4 (permalink)  
Antiguo 10/06/2005, 02:54
 
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 83
Antigüedad: 21 años, 8 meses
Puntos: 0
Nadie Me Puede Ayudar????
  #5 (permalink)  
Antiguo 10/06/2005, 08:30
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 20 años, 1 mes
Puntos: 9
La única forma que se me ocurre es hacer un bucle que recorra el array y que pregunte si el elemento que contiene el array es igual al elemento que le pasamos para borrar, entonces que lo ponga a null. Algo así (obviamente con un ejemplo mucho más sencillo y con un array de una dimensión):

Dim arrProductId(2)

arrProductId(0) = 45678
arrProductId(1) = 48972
arrProductId(2) = 28723

Entonces si querés borrar el producto con ID "48972", sería algo como esto:

For i=0 to UBound(arrProductId)
if arrProductId(i) = 48972 then
arrProductId(i) = Null
end if
next

Espero que te sirva y que logres adaptarlo a lo que estás buscando.
Saludos.

---------------------------------------------

En tu caso supongamos que le pasas por el querystring el id del producto que queres borrar, en la página que realizaría esta tarea quedaría algo así:

Dim IdArt
IdArt = Request.QueryString("deleteArt")

For itemnumber=0 to session("itemCount")
if session("ShoppingCart")(0, itemnumber) = IdArt then
session("ShoppingCart")(0, Itemnumber) = Null
end if
next

Última edición por mariano_donati; 10/06/2005 a las 08:40
  #6 (permalink)  
Antiguo 10/06/2005, 10:02
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 23 años, 3 meses
Puntos: 3
lo q te digo del F5 es q mira.. q pasa si hago esto?

cuando uno hace clic a un producto para agregarlo al carrito de compras tons que se va a otra página (x ejemplo: agregar.asp) en esa página tiene el código para agregar el porducto.. luego de hacer ese ingreso, hace un redirect a la otra página, a x ejemplo la página donde el usuario ve los productos q tiene en su carrito de compras (sabes lo q es un redirect no).... asi aunque apriete F5 se vuelve a cargar la página donde se ven los productos, pero en esa página no está el código que ingresan los productos al carrito de compras
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:58.