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

donde guardar los pedidos en un carrito de compra

Estas en el tema de donde guardar los pedidos en un carrito de compra en el foro de ASP Clásico en Foros del Web. Buenas a todos los miembros del foro! Como he indicado en el título, estoy realizando un carrito de compra, concretamente, de una zapatería. Por este ...
  #1 (permalink)  
Antiguo 13/10/2004, 03:32
 
Fecha de Ingreso: octubre-2004
Mensajes: 5
Antigüedad: 20 años, 7 meses
Puntos: 0
De acuerdo donde guardar los pedidos en un carrito de compra

Buenas a todos los miembros del foro!
Como he indicado en el título, estoy realizando un carrito de compra, concretamente, de una zapatería. Por este motivo, debo guardar los siguientes datos (para cada usuario que realiza pedidos): cod modelo, color, número de pie y cantidad de pares pedidos. Se me ha ocurrido crear una matriz redimensionable de 4 columnas y las filas necesarias.
Mi pregunta es la siguiente: donde se puede guardar esta matriz? En el objeto session, en el application o en el request.cookies?
He visto en manuales que he consultado, que es posible guardar matrices en el objeto application, pero no sé si es bueno que se guarde en este objeto (donde pueden acceder todos los usuarios) datos de un solo usuario. En el resto de objetos que he mencionado no sé si se puede.
Si alguien me pudiese solucionar esta duda me serviría de gran ayuda, puesto que estoy atascado en este punto.
  #2 (permalink)  
Antiguo 13/10/2004, 05:13
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 9 meses
Puntos: 16


Creo que lo mas logico es tirar los valores de un carro de compras a una kuki.


Sin embargo, yo soy mas exquicito y lo que hago es hacer un xml donde guardo toda la informacion que el usuario requiere en una session, incluidos objetos como los carros de compras y los tiro a una variable de session o en su defecto a una kuki.... Pero eso es usar otra tecnologia.
  #3 (permalink)  
Antiguo 13/10/2004, 08:22
 
Fecha de Ingreso: octubre-2004
Mensajes: 5
Antigüedad: 20 años, 7 meses
Puntos: 0
De acuerdo

Gracias a Muzztein por tu ayuda. Me surge otra duda: se puede guardar en un objeto session una matriz?
Un saludo a todos.
  #4 (permalink)  
Antiguo 13/10/2004, 10:19
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 3 meses
Puntos: 535
Si, sé que se puede.. pero ahora no recuerdo exactamente cómo lo hacía

Pero se me ocurre que por ejemplo algo así debe de funcionar:

<% Session("mi_matriz") = Split("1,2,3", ",") %>

Luego en otra página:

<% mi_matriz = Session("mi_matriz") %>
__________________
...___...
  #5 (permalink)  
Antiguo 14/10/2004, 03:32
 
Fecha de Ingreso: octubre-2004
Mensajes: 5
Antigüedad: 20 años, 7 meses
Puntos: 0
De acuerdo

Gracias, al zuwaga. Tú que me recomiendas, que guarde la matriz con los datos del carro de la compra en una variable de sesión (como me has indicado antes) o en una cookie (si es que se puede guardar un matriz en una cookie)?
Un saludo.
  #6 (permalink)  
Antiguo 14/10/2004, 08:48
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 3 meses
Puntos: 535
En una cookie. Pero me parece que no podés guardar un array como tal, sino que armás el array cada vez que lo necesites con los datos almacenados en la cookie.

También he visto que usan el objeto dictionary, guardándolo en variables ession.
__________________
...___...
  #7 (permalink)  
Antiguo 14/10/2004, 09:31
 
Fecha de Ingreso: octubre-2004
Mensajes: 5
Antigüedad: 20 años, 7 meses
Puntos: 0
Mensaje

Hola de nuevo Al Zuwaga.
He intentado con el objeto session y de momento me sale (me guarda el array de dos dimensiones). Pero tengo un problema, además bastante grande.

Introduzco una linea en el array, es decir, introduzco un pedido y lo hace bien. Incluso si vuelvo a hacer otro pedido del mismo producto, me suma las cantidades.

El problema es que no me deja ampliar el array con otra linea, es decir, cuando quiero introducir los datos de otro producto hago esto:
k=ubound(pedido,1)+1
redim preserve pedido(k,4)
pedido(k,0)=Request.Form("cod_mar")'-->guarda el código de la marca
pedido(k,1)=Request.Form("cod_mod")'-->guarda el código del modelo
pedido(k,2)=Request.Form("cod_col")'-->guarda el código del color
pedido(k,3)=cont'-->guarda el nº
pedido(k,4)=cint(Request.Form(nombre))'-->guarda cantidad producto

donde pedido es el array.

Cuando hago esto, el navegador me responde con esto otro:
Tipo de error:
Error de Microsoft VBScript en tiempo de ejecución (0x800A0009)
El subíndice está fuera del intervalo

indicando la línea donde pone
redim preserve pedido(k,4)

Entiendo que si quiero introducir un nuevo pedido tengo que redimensionar el array, y para ello con redim preserve, puesto que quiero guardar los datos anteriores.
Para ello guardo en una variable el valor alto del array y le sumo 1, para añadir una nuevo línea. Luego redimensiono el array.

No sé donde está el error y llevo por lo menos tres dias con esto.

Agradecería enormemente una ayuda.
Gracias por todo y un saludo a los miembros del foro.
  #8 (permalink)  
Antiguo 14/10/2004, 10:29
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 3 meses
Puntos: 535
Bueno, a mi siempre me vuelve un poco loco el tema de redimencionar arrays.
Antes te decía que suelen utilizar el objeto "Dictionary" para los carritos de compra. Leete esto:

Cita:
Aunque quizá estéis pensando... "Vale, pero todo lo puedo hacer con vectores". Debéis saber que el objeto diccionario es bastante rápido a la hora de añadir información, que no precisamos saber de antemano el tamaño ni tenemos que hacer ReDims como con los vectores... Además, es ideal para almacenar valores asociados entre sí, sin tener que jugar con dos índices en caso de hacerlo con un vector
Extraido de aquí: http://www.aspfacil.com/articulos/dictionary.asp


Nunca hice un carrito de compra, pero intentaría de esa manera si lo necesitara hacer.
__________________
...___...
  #9 (permalink)  
Antiguo 16/10/2004, 07:34
 
Fecha de Ingreso: octubre-2004
Mensajes: 5
Antigüedad: 20 años, 7 meses
Puntos: 0
De acuerdo

Gracias Al Zuwaga por tus molestias. Me he imprimido el artículo del objeto Dictionary y, en verdad, es muy interesante. El problema es que necesito guardar más datos que una pareja. Por eso utilizo el array.
De todas maneras quería comunicar que ya he solucionado el problema: cuando se hace el redim preserve del array, solo se permite redimensionar el último parámetro (en mi caso el 2º) del vector.
De esta manera, yo como tenía los datos en una matriz donde las filas guardaban los datos de un producto, lo que he hecho ha sido guardar los datos de los productos en cada columna, redimensionando las columnas para permitir introducir más productos. Lo he probado y me funciona, se introducen nuevos productos en las columnas. Voy a seguir el carrito de esta manera a ver que pasa (ahora tengo que mostrar la cesta).
Desde aquí os agradezco a todos los que me habéis dedicado parte de vuestro tiempo en resolver esta duda.
Un saludo.
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 18:48.