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

variables dinamicas por parametros

Estas en el tema de variables dinamicas por parametros en el foro de ASP Clásico en Foros del Web. hola. les cuento. en una pagina tengo varias inputs con nombre de numero. ejemplo 1,2,3 100, 101, 102 1000, 1001, 1002 es dinamico, ya que ...
  #1 (permalink)  
Antiguo 27/12/2002, 15:03
Avatar de sepulman  
Fecha de Ingreso: agosto-2002
Mensajes: 274
Antigüedad: 22 años, 8 meses
Puntos: 0
variables dinamicas por parametros

hola.
les cuento.
en una pagina tengo varias inputs con nombre de numero. ejemplo 1,2,3
100, 101, 102
1000, 1001, 1002

es dinamico, ya que dependiendo del resultado del select se van creando... hasta ahi bien.

cuando los llamo desde la otra pagina le pongo el sgte codigo.

for i = 1 to max
texto = request.form(i) ' sin comillas
response.write (texto)
next

hasta ahi me muestra correctamente el contenido de los inputs 1,2,3...

cuando pongo el sgte codigo se cae
for i = 1 to max
texto = request.form(i+99) ' sin comillas
response.write (texto)
next

este codigo es pa que me muestre los inputs con nombre 100,101,102... pero no resulta. se cae y dice lo sgte :

Tipo de error:
Objeto Request, ASP 0105 (0x80004005)
Un índice de matriz está fuera del intervalo.
/ingreso_observacion.asp, line 67



¿¿¿¿cuales seran las limitaciones al momento de hacer un request.form(algo)
request.form("nombre_input")?????

espero que me entiendan cual es el problema...
__________________
Saludos
Miguel Angel
<[email protected]>
  #2 (permalink)  
Antiguo 27/12/2002, 15:12
Avatar de korev  
Fecha de Ingreso: diciembre-2002
Ubicación: Barcelona
Mensajes: 127
Antigüedad: 22 años, 4 meses
Puntos: 0
Vaya tela tener tantos input a validad cada vez.
No tengo ni idea de si hay límite o no, aunqeu es de suponer por tu error que sí lo hay.
Solución chapucera pero supongo que eficaz: cuando genere dile que al llegar a 99 cambie el nombre. En vez de ser solamente un número, que empiece por las letras del abecedario, tipo matrícula de coche. De este modo...
1
2
3
...
98
99
a1
a2
...
z1
z2
...
aa1
aa2

etc.
__________________
on error... resume next
  #3 (permalink)  
Antiguo 27/12/2002, 15:35
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
no creo que haya un limite de envio de input's. para mi que tu limite superior sobrepasa la cantidad de input que se generaron.

for i = 1 to max

de donde sacas el max.

verifica que el max sea el limite verdadero de input's enviados.
  #4 (permalink)  
Antiguo 27/12/2002, 15:43
Avatar de sepulman  
Fecha de Ingreso: agosto-2002
Mensajes: 274
Antigüedad: 22 años, 8 meses
Puntos: 0
guaaa, espera se me olvido hacer un comentario re importante
no es que salgan 1000 inputs ni mucho menos. mira:


tengo tres textfields(sugerencia, saldo, observacion) que hay que llenar en un formulario. al modificar debo pasarlo por parametros.
entonces si el select me arroja 5 registros se crean los sgtes textfiedls:

para observacion queda los sgtes input : 1,2,3,4,5.
para sugerencias queda los sgtes input : 100,101,102,103,104,105
para saldo queda los sgtes input : 1001,1002,1003,1004,1005

entonces cuando quiero recuperar los datos pongo en la otra pagina :


for i = 1 to max
texto = request.form(i) ' sin comillas
response.write (texto)
next


max es el mayor de las observaciones que el lo mismo que el numero de registros que me arrojo el select. entonces el i me va a recuperar "observacion", el i + 99 me recupera el input 100 que corresponde a la "sugerencia" y el i + 999 me recupera el input 1000 que corresponde a "saldo".

entonces mi problema es que cuando pongo:

for i = 1 to max
texto = request.form(i+99) ' sin comillas
response.write (texto)
next
se cae y me arroja el error

no se si quedo mas clara mi explicacion....
__________________
Saludos
Miguel Angel
<[email protected]>
  #5 (permalink)  
Antiguo 27/12/2002, 15:49
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
entendi bien poco...

por ke no empiezas tu for con 100??
  #6 (permalink)  
Antiguo 27/12/2002, 15:58
Avatar de korev  
Fecha de Ingreso: diciembre-2002
Ubicación: Barcelona
Mensajes: 127
Antigüedad: 22 años, 4 meses
Puntos: 0
Acabo de probarlo y parece que da lo mismo cómo se haga, si en el request.form() hay un más de dos cifras... no funciona Curioso.
__________________
on error... resume next
  #7 (permalink)  
Antiguo 27/12/2002, 16:04
Avatar de sepulman  
Fecha de Ingreso: agosto-2002
Mensajes: 274
Antigüedad: 22 años, 8 meses
Puntos: 0
bakanzipp:
no se si te acuerdas del sgte post :
http://www.forosdelweb.com/showthrea...hreadid=108336

es de hace poco. tu me diste la solucion perfecta.
se trataba de que tenia que actualizar varios registros a la vez.
entonces un input se creaba dinamicamente con nombre 1, 2, 3 dependiendo de cuanto registro me arrojaba el select.
ya, ok funciona para crear solo un input, pero yo necesito ingresar 2 mas , o sea 2 input mas , que son saldo y sugerencia.
entonces por eso creo los nombres 100, 101, 102 ... para las sugerencias y otro que empiezazn de 1000, ..... para saldo.

por ke no empiezas tu for con 100??

max me devuelve el numero de registros que me dio el select.
mira mejor te mando el codigo :
<%
i=1
suge=100
saldo=1000
do while not producto.eof %>
<% response.write(producto("cod_prod"))%>
<% response.write(producto("des_prod"))%>
<% response.write(producto("fec_mod_bd"))%>
<%response.write(producto("display") )%>
<% response.write(producto("cantidad"))%>
<% response.write(producto("capacidad"))%>
<% response.write(producto("costo_int"))%>
<input type="text" name="<%=saldo%>">
<input type="text" name="<%=suge%>">
<input type="text" name="<%=i%>">
<% i=i+1
suge = suge+1
saldo = saldo+1

producto.movenext
loop
i=i-1
%>
el i me devuelve el max de registros...
no se si ahora queda un poco mas claro....
__________________
Saludos
Miguel Angel
<[email protected]>
  #8 (permalink)  
Antiguo 27/12/2002, 16:44
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, 2 meses
Puntos: 535
sha se por qué es y es fácil

cuando i = 1:
INPUT observacion = 1 ()
INPUT sugerencias = 100 (, debería ser 101)
INPUT saldo = 1000 (, debería ser 1001)

cuando i = 2:
INPUT observacion = 2 ()
INPUT sugerencias = 101 (, debería ser 102)
INPUT sugerencias = 1001 (, debería ser 1002)

etc para cuando i = 3...

Fijate en esto y adaptá tu código a él.
Creo que está bien claro, pero igual si no sale avisá
(podés hacer un copy&paste del código en un archivo nuevo que está listo para usar)


<% Cantidad = 5 %>
<form method="post" action="<% = Request.ServerVariables("SCRIPT_NAME")%>">
<% For i = 1 to cantidad %>
<input type="text" name="obs<% = i %>" value="<% = "obs" & i %>" ><br>
<input type="text" name="sug<% = i %>" value="<% = "sug" & i %>" ><br>
<input type="text" name="sal<% = i %>" value="<% = "sal" & i %>"><br>
<% Next %>
<input type="text" name="max" value="<% = i - 1 %>"><br>
<input type="submit" value="enviar">
</form>
<br>
<br>
<br>
<br>
<%
max = request.form("max")

for i = 1 to max
observaciones = request.form("obs" & i) ' con y sin comillas xDD
response.write (observaciones) & "<br>"
next

for i = 1 to max
sugerencias = request.form("sug" & i) ' con y sin comillas xDD
response.write (sugerencias) & "<br>"
next

for i = 1 to max
saldo = request.form("sal" & i) ' con y sin comillas xDD
response.write (saldo) & "<br>"
next
%>



saludos
  #9 (permalink)  
Antiguo 27/12/2002, 17:15
Avatar de sepulman  
Fecha de Ingreso: agosto-2002
Mensajes: 274
Antigüedad: 22 años, 8 meses
Puntos: 0
no es mala la idea pero hay un problema.
antes del for yo hago un select y modifico los tres registros a la vez , despues un update y sigo....

al hacer tres for tendria que hacer tres select iguales, por lo que no seria lo optimo...
en todo caso creo que me entendiste lo que queria hacer, eso es , pero mi problema es al hacerlo en un solo for para optimizar tiempos....
digo yo..
__________________
Saludos
Miguel Angel
<[email protected]>
  #10 (permalink)  
Antiguo 27/12/2002, 17:26
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, 2 meses
Puntos: 535
bueno, pero yo lo hice con tres for por que se me ocurrió hacerlo así... igualmente se puede hacer sólo con uno:


for i = 1 to max
observaciones = request.form("obs" & i)
sugerencias = request.form("sug" & i)
saldo = request.form("sal" & i)
response.write (observaciones) & "<br>"
response.write (sugerencias) & "<br>"
response.write (saldo) & "<br>"
next


Eso es lo de menos.. me parece que tu problema es cuando le asignás dinámicamente el nombre a los INPUT y luego cuando intentás recogerlos, también dinámicamente
  #11 (permalink)  
Antiguo 27/12/2002, 17:27
Avatar de sepulman  
Fecha de Ingreso: agosto-2002
Mensajes: 274
Antigüedad: 22 años, 8 meses
Puntos: 0
pera pera pera, o sea espera un moment, me di cuenta que me concatenaste los nombres.....
voy a probar asi mismo al crear los inputs..

y despues el select, despues el for

for i = 1 to max
producto("sugerencia") = request.form("sug" & i)
producto("saldo") = request.form("sal" & i)
producto("observacion") = request.form("obs" & i)
producto.update
next

producto.close


te cuento como me va, pero ligerito me tengo que ir pa mi casa asi que si no alcanzo ahora sigo mañaña.
Gracias Don Moderador dazuaga
__________________
Saludos
Miguel Angel
<[email protected]>
  #12 (permalink)  
Antiguo 27/12/2002, 18:25
Avatar de sepulman  
Fecha de Ingreso: agosto-2002
Mensajes: 274
Antigüedad: 22 años, 8 meses
Puntos: 0


ahora si que si.
1.000.000 de gracias a todos los que me ayudaron.
el codigo final es el sgte :



despues de hacer un select en una base de datos ... creo los input dinamicos dependiendo de los registros que me tire el select

<form name="form1" method="post" action="pagina.asp">
<div align="left">
<%
i=1
do while not producto.eof
%>
<% response.write(producto("cod_prod"))%>
<% response.write(producto("des_prod"))%>
<% response.write(producto("fec_mod_bd"))%>
.
.
.
.
<% response.write(producto("rut_pro"))%>

<input type="text" name="<% = "sal" & i %>" >
<input type="text" name="<% = "suge" & i %>">
<textarea name="<% = "obs" & i %>" </textarea>

<%
i=i+1
producto.movenext
loop
i=i-1
%>
<input type=hidden name=cantidad value="<%=i%>">
<input type="submit" name="boton" value="modificar">
</form>



eso por una parte para poder enviar los datos...
en la otra pagina


despues de hacer el mismo select anterior
<%
for i = 1 to max
producto("saldo_bodega") = request.form("sal" & i)
producto("suge_bodega") = request.form("suge" & i)
producto ("observacion") = request.form("obs" & i)
producto.update
producto.movenext
next
%>

de nuevo muchas gracias a todos...
__________________
Saludos
Miguel Angel
<[email protected]>
  #13 (permalink)  
Antiguo 27/12/2002, 23: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, 2 meses
Puntos: 535
de nada en nombre de todos, pero...

Cita:
saldo_bodega
bodega... de vinos?
No hay un remanente para los que aportamos algo???



  #14 (permalink)  
Antiguo 29/12/2002, 12:39
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Cita:
bodega... de vinos?
daz...dijiste vino?...donde donde
  #15 (permalink)  
Antiguo 29/12/2002, 13:33
Avatar de korev  
Fecha de Ingreso: diciembre-2002
Ubicación: Barcelona
Mensajes: 127
Antigüedad: 22 años, 4 meses
Puntos: 0
bakanzipp, casi se lo creen...

Dazuaga, llegaste tarde... ¿porqué crees que pensamos que eran más de 1000 inputs en un solo form?
__________________
on error... resume next
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 14:38.