array

30/09/2005 - 15:43 por Enrique | Informe spam
hola a todos

Estoy creando un carrito de compra a partir de una pagina estatica. cuando
el usuario pincha a una categoria, aparece la pagina de productos de esta
categoria. cada producto tiene un hipervinculo para añadir este producto al
carrito de compra. se recibe correctamente el idProducto del producto pero
me hace falta tambien gestionar la cantidad (inicialmente 1 pero que debe
ser modificable) por lo que necesito un array de 2 columnas y numero
indeterminado de filas de forma que cada vez que el usuario añada un
producto al carrito de compra, se vaya rellenando el array y se muestre en
pantalla totalmente actualizado para por fin en el momento de la
formalizacion del pedido poder volcar los datos a la base de datos
subyacente.

el problema es que hasta ahora no he conseguido poder trabajar con este
array porque no consiguo ponerlo en ambito global. lo declaro en el global
asa. no se si es aqui que se debe declarar o en cualquier otra pagina. esta
claro que no se puede declarar en la pagina del carrito de compra porque
sino se declara cada vez que se ejecuta la pagina por lo que se
reinicializa, es decir: nace y muere con la pagina.

la idea es poder trabajar una estructura dinamica en memoria que puede
crecer y decrecer a nuestro entojo. me interesa cualquier idea,
planteamiento o alternativa

muchas gracias por su ayuda

Preguntas similare

Leer las respuestas

#6 Nuno Santos
30/09/2005 - 19:56 | Informe spam
Declaras en el global.asa la variabel de sessión... después en la página
carrito.asp tienes un array para donde descarregas el conteúdo de la
variável de sesión, trabajas con el array y despúes colocas el nuevo array
en la variable de sesión...

ejemplo
<carrito.asp>
dim arrCarro,indice
arrCarro = session("MiCarro")
indice = Ubound(arrCarro,2) + 1
redim Preserve arrCarro(1,indice) 'caso o array incremente na segunda
posição (arrCarro(1,n))
...

arrCarro(0,indice) = <NuevoID>
arrCarro(1,indice) = <NuevoArtigo>
...
...

session("MiCarro") = arrCarro

<fim>

Es algo mas o menos asin, cada vez que vás a carro.asp carregas el array con
el array que estava en la session

Nuno Santos




Nuno Santos
nunos7[REMOVER]@hotmail.com

"Enrique" wrote in message
news:
gracias por tu ayuda. esto lo encontre en
http://www.asptutor.com/asp/vart.asp?id& y la verdad es que es
interesante
ver como una variable de sesion o de aplicacion puede almacenar cualquier
tipo de datos e incluso matrices.

mi problema (carrito de compra), es que no se de antemano cuantos
productos
me va a pedir un cliente. por eso, debo usar un array dinamico, es decir
un
array en el que no se conocen el numero de valores de antemano, eso es su
tamaño,. a su vez significa que cada vez que el cliente pida un nuevo
producto, se incremente una variable de sesion tipo:
session("num_articulos") = session("num_articulos")+1 que da la nueva
dimension de nuestro array dinamico. lo puedo redimensionar en la misma
pagina del carrito de compra pero ¿donde declaro mi matriz dinamica para
que
sea global y se puede redimensionar en mi carrito de compra?

gracias por tu respuesta




"William Rivera" escribió en el mensaje
news:
Buenas,
Soy novato en ASP pero mirando un libro que es con el que estoy
aprendoendo encontre esto:

Si almacenamos una variable array a nivel de aplicación, para modificar


sus
valores no podremos

hacerlo directamente, sino que se debe hacer a través de una variable
auxiliar, que será la que se

modificará y luego asignará a la variable de aplicación correspondiente.



y el ejemplo es

<%Dim vector(3)

vector(0)="Primer valor"

vector(1)="Segundo"

vector(2)="Tercero"

vector(3)="Ultimo Valor"

Application("valores")=vector



'Para modificar los valores recuperamos la variable

vectorAux=Application("valores")

vectorAux(2)="Elemento modificado"

Application("valores")=vectorAux

For i=0 to UBound(Application("valores"))

Response.Write

"Application('valores')("&i&")="&Application("valores")(i)&"<br>"

Next%>


Y el resultado de este código es:

Application('valores')(0)=Primer valor

Application('valores')(1)=Segundo

Application('valores')(2)=Elemento modificado

Application('valores')(3)=Ultimo Valor

Espero te ayude


William Rivera




"Enrique" wrote in message
news:
> hola a todos
>
> Estoy creando un carrito de compra a partir de una pagina estatica.


cuando
> el usuario pincha a una categoria, aparece la pagina de productos de


esta
> categoria. cada producto tiene un hipervinculo para añadir este
> producto
> al
> carrito de compra. se recibe correctamente el idProducto del producto


pero
> me hace falta tambien gestionar la cantidad (inicialmente 1 pero que


debe
> ser modificable) por lo que necesito un array de 2 columnas y numero
> indeterminado de filas de forma que cada vez que el usuario añada un
> producto al carrito de compra, se vaya rellenando el array y se muestre


en
> pantalla totalmente actualizado para por fin en el momento de la
> formalizacion del pedido poder volcar los datos a la base de datos
> subyacente.
>
> el problema es que hasta ahora no he conseguido poder trabajar con este
> array porque no consiguo ponerlo en ambito global. lo declaro en el


global
> asa. no se si es aqui que se debe declarar o en cualquier otra pagina.
> esta
> claro que no se puede declarar en la pagina del carrito de compra
> porque
> sino se declara cada vez que se ejecuta la pagina por lo que se
> reinicializa, es decir: nace y muere con la pagina.
>
> la idea es poder trabajar una estructura dinamica en memoria que puede
> crecer y decrecer a nuestro entojo. me interesa cualquier idea,
> planteamiento o alternativa
>
> muchas gracias por su ayuda
>
>
>
>








Respuesta Responder a este mensaje
#7 dani castillo
30/09/2005 - 21:29 | Informe spam
quiza esto te sirva:

una var de session puede contener un string
ese string "puede" ser una representacion en cadena de tus idproducto
separados por comas, para añadir o quitar productos puedes hacerlo
concatenando el string con ","+idproductonuevo
para eliminar un producto con
replace (cadena,","+idproductonuevo,"")

para pasar el string a vector (para mostrarlo etc):
vector=split(cadena,",")

para juntarlo una vez separado
cadena=join(vector,",")

// ojo con el producto "0" del vector puede salir vacio al concatenar como
te he dicho antes

puedes hacer una estructura mas compleja usando pares , por ejemplo
almacenar idproducto:cantidad, idproducto2,cantidad2 ... etc en el string,
en ese caso añadir un producto es directamente concatenar como antes,
eliminarlo ya es mas complejo (deberias pasar con split a vector y de ahi
anularlo o reconstruir toda la cadena salvo ese producto recorriendo el
vector con un for )

esa cadena la puedes pasar por session entre las paginas (o directamente ser
un session("micarro") )


"Enrique" escribió en el mensaje
news:
hola a todos

Estoy creando un carrito de compra a partir de una pagina estatica. cuando
el usuario pincha a una categoria, aparece la pagina de productos de esta
categoria. cada producto tiene un hipervinculo para añadir este producto
al
carrito de compra. se recibe correctamente el idProducto del producto pero
me hace falta tambien gestionar la cantidad (inicialmente 1 pero que debe
ser modificable) por lo que necesito un array de 2 columnas y numero
indeterminado de filas de forma que cada vez que el usuario añada un
producto al carrito de compra, se vaya rellenando el array y se muestre en
pantalla totalmente actualizado para por fin en el momento de la
formalizacion del pedido poder volcar los datos a la base de datos
subyacente.

el problema es que hasta ahora no he conseguido poder trabajar con este
array porque no consiguo ponerlo en ambito global. lo declaro en el global
asa. no se si es aqui que se debe declarar o en cualquier otra pagina.
esta
claro que no se puede declarar en la pagina del carrito de compra porque
sino se declara cada vez que se ejecuta la pagina por lo que se
reinicializa, es decir: nace y muere con la pagina.

la idea es poder trabajar una estructura dinamica en memoria que puede
crecer y decrecer a nuestro entojo. me interesa cualquier idea,
planteamiento o alternativa

muchas gracias por su ayuda




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida