recoger un input en ASP

08/10/2005 - 01:39 por Enrique | Informe spam
hola a todos

estoy haciendo un carrito de compra y he puesto un cuadro de texto para que
el usuario pueda modificar la cantidad de un producto determinado. para
eliminar un producto, no tengo problemas porque me baso unicamente sobre el
id pero para modificarlo necesita ademas del id, de la nueva cantidad del
producto pero no consiguo coger este valor. no es el valor inicial por lo
que no es de recordset y tampoco me funciona usando su nombre.

¿como se hace?

muchas gracias por su ayuda

Preguntas similare

Leer las respuestas

#1 Gatón
08/10/2005 - 15:16 | Informe spam
Hola:

Por ejemplo:

<input type="text" name="cant<%response.write f%>" size="2"
value="<%response.write arrCart(f,3) %>" onBlur="validateNumber(this)">

Lo anterior muestra la cantidad en la pagina del carro de compras.
Como veras el "name" es compuesto y se incluye un indice(veras que los
articulos en el carro estan en un arreglo) para identificar el producto ya
que pueden haber varios en el carro.
Por supuesto "value" muestra la cantidad.
El "ValidateNumber()" simplemente evita (Javascript) que se introduzcan
cosas diferentes a numeros mayores de 0.

Ahora bien como la cantidad se está mostrando en un "<input>" el usuario
puede modificar el valor del mismo.
Ahora solo tienes que agregar a la pagina del carro de compras un link o
boton que diga "recalcular" o "actualizar", etc que hara un submit de si
mismo.

Saludos

Enrique Medina
Santiago de Chile



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

estoy haciendo un carrito de compra y he puesto un cuadro de texto para


que
el usuario pueda modificar la cantidad de un producto determinado. para
eliminar un producto, no tengo problemas porque me baso unicamente sobre


el
id pero para modificarlo necesita ademas del id, de la nueva cantidad del
producto pero no consiguo coger este valor. no es el valor inicial por lo
que no es de recordset y tampoco me funciona usando su nombre.

¿como se hace?

muchas gracias por su ayuda





Respuesta Responder a este mensaje
#2 Enrique
08/10/2005 - 19:20 | Informe spam
hola Gatón

lo primero, muchas gracias por tu ayuda que hoy es sabado y no es siempre
facil obtener respuestas.

el problema es que no lo entiendo. he visto por ahi codigo de carritos de
compra y veo que hacen las cosas por array gracias a una variable de sesion
y que normalmente este array esta predimensionado aunque tambien se
redimensiona cuando hace falta.

el boton "modificar" que deberia tomar en cuenta la cantidad de cada
producto, lo he puesto para cada producto, de forma que se deberia
recalcular cada vez que se cambia una cantidad aunque es tambien muy
interesante que se pueda hacer de forma masiva, es decir para todos los
productos del carrito de compra.

en vez de trabajar con un array o un dictionary, he preferido trabajar con
una tabla temporal pero la verdad es que no se me occure como puedo coger el
valor del cuadro de texto. no tengo nada claro como se puede saber que tal o
tal cantidad, que se ha modificado pertenece a tal o tal producto. no es
como tener un datagrid al cual puedes acceder por indice tanto de fila como
columna.

para eliminar cada producto, mi vinculo "eliminar" funciona porque solo
necesito saber el id del producto que quiero eliminar y eso lo tengo en el
recordset en cada iteracion de las filas o registros de la tabla.
en este caso tengo algo como:
<A
HREF="carritoDeCompra.asp?ac=eliminar&codeProduit=<%=oRs.Fields("codeProduit
")%>">Eliminar

pero cuando se trata de modificar la cantidad de un producto, la cosa cambia
porque ademas del id del producto me hace falta la nueva cantidad y lo
cierto es que no se relacionar la cantidad con el id.
en este ultimo caso tendria algo como:
<A
HREF="carritoDeCompra.asp?ac=modificar&codeProduit=<%=oRs.Fields("codeProdui
t")%>&cantidad=?????????????">Eliminar

muchas gracias por tu ayuda













"Gatón" <elsupergatonARROBAhotmail.com> escribió en el mensaje
news:#
Hola:

Por ejemplo:

<input type="text" name="cant<%response.write f%>" size="2"
value="<%response.write arrCart(f,3) %>" onBlur="validateNumber(this)">

Lo anterior muestra la cantidad en la pagina del carro de compras.
Como veras el "name" es compuesto y se incluye un indice(veras que los
articulos en el carro estan en un arreglo) para identificar el producto ya
que pueden haber varios en el carro.
Por supuesto "value" muestra la cantidad.
El "ValidateNumber()" simplemente evita (Javascript) que se introduzcan
cosas diferentes a numeros mayores de 0.

Ahora bien como la cantidad se está mostrando en un "<input>" el usuario
puede modificar el valor del mismo.
Ahora solo tienes que agregar a la pagina del carro de compras un link o
boton que diga "recalcular" o "actualizar", etc que hara un submit de si
mismo.

Saludos

Enrique Medina
Santiago de Chile



"Enrique" escribió en el mensaje
news:
> hola a todos
>
> estoy haciendo un carrito de compra y he puesto un cuadro de texto para
que
> el usuario pueda modificar la cantidad de un producto determinado. para
> eliminar un producto, no tengo problemas porque me baso unicamente sobre
el
> id pero para modificarlo necesita ademas del id, de la nueva cantidad


del
> producto pero no consiguo coger este valor. no es el valor inicial por


lo
> que no es de recordset y tampoco me funciona usando su nombre.
>
> ¿como se hace?
>
> muchas gracias por su ayuda
>
>
>
>
>



Respuesta Responder a este mensaje
#3 Matías Iacono
10/10/2005 - 17:12 | Informe spam
Por lo que veo en tus mensajes, se nota que empezaste con .Net y luego haz
querido ver como se hacian las cosas a la antigua.

Bueno, la ventaja de .net es que puedes acceder, como dices, en el datagrid,
a cada fila y cada una es un elemento unico. En nuestro caso, los
desarrolladores ASP, tenemos que hacer lo mismo, pero, tenemos que hacerlo
todo nosotros.

En el caso de que tengas que mostrar mas de un producto con su input para la
cantidad. Debo suponer que tienes un bucle, sea sacado de un array o de una
tabla de la base de datos.

Entonces, como tienes un ID de producto, lo que deberias hacer es algo asi:

<%
do while not RECORDSET.eof
%>
<input type=text value=<%=RECORDSET("CampoConElValor")%>
name="<%RECORDSET("ID")%>"
<%
RECORDSET.movenext
loop
%>

Lo que logras con esto, es que cada textbox tenga, en su nombre, el
equivalente al ID del producto que modificara.

Entonces, cuando haces un submit (o postback en .Net) ASP, o ASP.net, o PHP,
o el lenguaje que te guste, envia todo lo que tiene dentro del formulario
para que lo puedas recapturar. Lo envia como si fuera una coleccion de text.
Y envia hasta el boton, y cualquier cosa que tengas dentro de tu FORM.

Entonces, lo unico que deberias hacer para capturar los datos seria algo
asi:

<%

for each ELEMENTO in request.form()
'Request.form a secas te retorna esta coleccion de datos.
if isNumeric(ELEMENTO) then
'Si es un numero, haz encotrado tu textbox
'Entonces haz encontrado un ID

ValorIntroducidoPorElUsuaio = request.form(ELEMENTO)
...
...
end if
next

Entonces, si encuenstras el ID, puedes recuperar el valor, ya que su nombre
del input es el mismo, y podrias hacer lo que quieras con esos datos.

Saludos.

Matías Iacono
Microsoft MVP ASP/ASP.net - DCE3
"Enrique" escribió en el mensaje
news:%
hola Gatón

lo primero, muchas gracias por tu ayuda que hoy es sabado y no es siempre
facil obtener respuestas.

el problema es que no lo entiendo. he visto por ahi codigo de carritos de
compra y veo que hacen las cosas por array gracias a una variable de
sesion
y que normalmente este array esta predimensionado aunque tambien se
redimensiona cuando hace falta.

el boton "modificar" que deberia tomar en cuenta la cantidad de cada
producto, lo he puesto para cada producto, de forma que se deberia
recalcular cada vez que se cambia una cantidad aunque es tambien muy
interesante que se pueda hacer de forma masiva, es decir para todos los
productos del carrito de compra.

en vez de trabajar con un array o un dictionary, he preferido trabajar con
una tabla temporal pero la verdad es que no se me occure como puedo coger
el
valor del cuadro de texto. no tengo nada claro como se puede saber que tal
o
tal cantidad, que se ha modificado pertenece a tal o tal producto. no es
como tener un datagrid al cual puedes acceder por indice tanto de fila
como
columna.

para eliminar cada producto, mi vinculo "eliminar" funciona porque solo
necesito saber el id del producto que quiero eliminar y eso lo tengo en el
recordset en cada iteracion de las filas o registros de la tabla.
en este caso tengo algo como:
<A
HREF="carritoDeCompra.asp?ac=eliminar&codeProduit=<%=oRs.Fields("codeProduit
")%>">Eliminar

pero cuando se trata de modificar la cantidad de un producto, la cosa
cambia
porque ademas del id del producto me hace falta la nueva cantidad y lo
cierto es que no se relacionar la cantidad con el id.
en este ultimo caso tendria algo como:
<A
HREF="carritoDeCompra.asp?ac=modificar&codeProduit=<%=oRs.Fields("codeProdui
t")%>&cantidad=?????????????">Eliminar

muchas gracias por tu ayuda













"Gatón" <elsupergatonARROBAhotmail.com> escribió en el mensaje
news:#
Hola:

Por ejemplo:

<input type="text" name="cant<%response.write f%>" size="2"
value="<%response.write arrCart(f,3) %>" onBlur="validateNumber(this)">

Lo anterior muestra la cantidad en la pagina del carro de compras.
Como veras el "name" es compuesto y se incluye un indice(veras que los
articulos en el carro estan en un arreglo) para identificar el producto
ya
que pueden haber varios en el carro.
Por supuesto "value" muestra la cantidad.
El "ValidateNumber()" simplemente evita (Javascript) que se introduzcan
cosas diferentes a numeros mayores de 0.

Ahora bien como la cantidad se está mostrando en un "<input>" el usuario
puede modificar el valor del mismo.
Ahora solo tienes que agregar a la pagina del carro de compras un link o
boton que diga "recalcular" o "actualizar", etc que hara un submit de si
mismo.

Saludos

Enrique Medina
Santiago de Chile



"Enrique" escribió en el mensaje
news:
> hola a todos
>
> estoy haciendo un carrito de compra y he puesto un cuadro de texto para
que
> el usuario pueda modificar la cantidad de un producto determinado. para
> eliminar un producto, no tengo problemas porque me baso unicamente
> sobre
el
> id pero para modificarlo necesita ademas del id, de la nueva cantidad


del
> producto pero no consiguo coger este valor. no es el valor inicial por


lo
> que no es de recordset y tampoco me funciona usando su nombre.
>
> ¿como se hace?
>
> muchas gracias por su ayuda
>
>
>
>
>








Respuesta Responder a este mensaje
#4 Gatón
11/10/2005 - 17:07 | Informe spam
Hola:

Me fui el sábado asi es que no te pude contin uar ayudando,

Considera seriamente las variables de session y un arreglo para guardar tu
carro.
Un <input "text"> tiene una propiedad "name" que te permite identificarlo y
una propiedad "value" que contiene el valor que el input almacena.
Simplemente tienes que darle un "name" diferente a cada producto de tu carro
y ya tienes como identificar cada uno de ellos.

Te envie un ejemplo real de un carro que funciona pero probablemente los
'adornos' te confundieron.

<input type="text" name="cant<%response.write f%>" size="2"
value="<%response.write arrCart(f,3) %>" onBlur="validateNumber(this)">


Limpiemoslo de adornos:

<input type="text" name="cant<%response.write f%>" value="<%response.write
arrCart(f,3) %>">

¿Que tenemos?:

un <Input> cuyo "name" se asigna en forma dinámica y quedará como cant0,
cant1, cant2, etc. cuyo valor es la columna '3' de cada linea del arreglo,
esta columna guarda el valor, otra guardara la ID del producto, otra el
valor a cobrar, o lo que quieras.

Por supuesto que el <Input> es parte de un 'form' y cuando lo envias se
procesa, el boton 'recalcular' envia el 'form'


Saludos

Enrique Medina
Santiago de Chile





"Enrique" escribió en el mensaje
news:%
hola Gatón

lo primero, muchas gracias por tu ayuda que hoy es sabado y no es siempre
facil obtener respuestas.

el problema es que no lo entiendo. he visto por ahi codigo de carritos de
compra y veo que hacen las cosas por array gracias a una variable de


sesion
y que normalmente este array esta predimensionado aunque tambien se
redimensiona cuando hace falta.

el boton "modificar" que deberia tomar en cuenta la cantidad de cada
producto, lo he puesto para cada producto, de forma que se deberia
recalcular cada vez que se cambia una cantidad aunque es tambien muy
interesante que se pueda hacer de forma masiva, es decir para todos los
productos del carrito de compra.

en vez de trabajar con un array o un dictionary, he preferido trabajar con
una tabla temporal pero la verdad es que no se me occure como puedo coger


el
valor del cuadro de texto. no tengo nada claro como se puede saber que tal


o
tal cantidad, que se ha modificado pertenece a tal o tal producto. no es
como tener un datagrid al cual puedes acceder por indice tanto de fila


como
columna.

para eliminar cada producto, mi vinculo "eliminar" funciona porque solo
necesito saber el id del producto que quiero eliminar y eso lo tengo en el
recordset en cada iteracion de las filas o registros de la tabla.
en este caso tengo algo como:
<A



HREF="carritoDeCompra.asp?ac=eliminar&codeProduit=<%=oRs.Fields("codeProduit
")%>">Eliminar

pero cuando se trata de modificar la cantidad de un producto, la cosa


cambia
porque ademas del id del producto me hace falta la nueva cantidad y lo
cierto es que no se relacionar la cantidad con el id.
en este ultimo caso tendria algo como:
<A



HREF="carritoDeCompra.asp?ac=modificar&codeProduit=<%=oRs.Fields("codeProdui
t")%>&cantidad=?????????????">Eliminar

muchas gracias por tu ayuda













"Gatón" <elsupergatonARROBAhotmail.com> escribió en el mensaje
news:#
> Hola:
>
> Por ejemplo:
>
> <input type="text" name="cant<%response.write f%>" size="2"
> value="<%response.write arrCart(f,3) %>" onBlur="validateNumber(this)">
>
> Lo anterior muestra la cantidad en la pagina del carro de compras.
> Como veras el "name" es compuesto y se incluye un indice(veras que los
> articulos en el carro estan en un arreglo) para identificar el producto


ya
> que pueden haber varios en el carro.
> Por supuesto "value" muestra la cantidad.
> El "ValidateNumber()" simplemente evita (Javascript) que se introduzcan
> cosas diferentes a numeros mayores de 0.
>
> Ahora bien como la cantidad se está mostrando en un "<input>" el usuario
> puede modificar el valor del mismo.
> Ahora solo tienes que agregar a la pagina del carro de compras un link o
> boton que diga "recalcular" o "actualizar", etc que hara un submit de si
> mismo.
>
> Saludos
>
> Enrique Medina
> Santiago de Chile
>
>
>
> "Enrique" escribió en el mensaje
> news:
> > hola a todos
> >
> > estoy haciendo un carrito de compra y he puesto un cuadro de texto


para
> que
> > el usuario pueda modificar la cantidad de un producto determinado.


para
> > eliminar un producto, no tengo problemas porque me baso unicamente


sobre
> el
> > id pero para modificarlo necesita ademas del id, de la nueva cantidad
del
> > producto pero no consiguo coger este valor. no es el valor inicial por
lo
> > que no es de recordset y tampoco me funciona usando su nombre.
> >
> > ¿como se hace?
> >
> > muchas gracias por su ayuda
> >
> >
> >
> >
> >
>
>
>



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