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

Problema con un formulario dentro de un bucle

Estas en el tema de Problema con un formulario dentro de un bucle en el foro de ASP Clásico en Foros del Web. Hola Amigos, llevo unas semanas desesperándome con este problemilla, a ver si me podéis ayudar: Esto me crea tantas casillas de texto como datos haya ...
  #1 (permalink)  
Antiguo 29/04/2005, 10:23
 
Fecha de Ingreso: abril-2005
Mensajes: 4
Antigüedad: 19 años, 2 meses
Puntos: 0
Sonrisa Problema con un formulario dentro de un bucle

Hola Amigos, llevo unas semanas desesperándome con este problemilla, a ver si me podéis ayudar:

Esto me crea tantas casillas de texto como datos haya leido de la DB.


Código:
Do While Not orden.Eof
%>

<tr>
<td><%=orden("local")%></td>
<td><input name="gl" type="text"></td>
<td><%=orden("visitante")%></td>
<td><input name="gv" type="text"></td>
</tr>
<%

orden.MoveNext
Loop
En esas casillas de texto introduzco datos pero cuando hago un Request.form("gl") desde otro script g1 es una especie de cadena de texto que separa mediante comas los datos que he metido en las anteriores casillas.¿Como lo separo? ¿Hay alguna forma de hacer esto más fácil?

Muchisimas Gracias
  #2 (permalink)  
Antiguo 29/04/2005, 10:58
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Hola, lo "separás" con:

Código:
gl_array = Split(Request.Form("gl"), ",")
Luego tenés conformado un array llamado gl_array donde sus elementos están desde el índice 0 (primer elemento del array) hasta el índice CantidadDeElementosTotales-1. O sea que si había 10 checkbox el último va a estar en el índice (10-1=) 9

Lo podés recorrer con un FOR de éstar manera:

Código:
For i = 0 to 9
Response.Write gl_array(i) & "<br>"
Next
Ahora, fijate que no tenés por qué conocer previamente el valor del último índice. Entonces, usás en lugar del número 9 UBound(gl_array). Que devuelve justamente el valor del último índice. Por lo tanto, te quedaría así:

Código:
For i = 0 to UBound(gl_array)
Response.Write gl_array(i) & "<br>"
Next

SAludos
__________________
...___...
  #3 (permalink)  
Antiguo 30/04/2005, 03:44
 
Fecha de Ingreso: abril-2005
Mensajes: 4
Antigüedad: 19 años, 2 meses
Puntos: 0
Muchas gracias Al Zuwaga, me ha servido de mucho tu ayuda.

Lo que pasa es que ahora no consigo actualizar la DB.
Me da un error en local="&local(i)&".
Y si quito esa parte no me actualiza nada en la DB... alguna sugerencia?
Gracias por adelantado!!!


Código:
for i=0 to 20
Response.Write(local(i))
SQL2="Update Partidos Set g_local='" & gl(i) & "' , g_visitante='" & gv(i) & "' Where jornada="&j&" and liga="&l&" and local="&local(i)&" "
set RS = Conn.Execute(SQL2)
next
  #4 (permalink)  
Antiguo 30/04/2005, 09:53
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Ummm... me parece que es porque estás instanciando un recordset en un bucle (y creo que no sde puede si no lo destruis).
Mejor, hacé esto:


Código:
for i=0 to 20
SQL2 = "Update Partidos Set g_local = '" & gl(i) & "' , g_visitante = '" & gv(i) & "' Where jornada = " & j & " and liga = " & l & " and local = " & local(i)
Conn.Execute(SQL2)
next

Fijate que no creás ningun recordset porque no es necesario.
Bueno, si igualmente no funciona, hacele un debug a SQL2 y comprobá que esté todo OK.

Saludos
__________________
...___...
  #5 (permalink)  
Antiguo 02/05/2005, 04:57
 
Fecha de Ingreso: abril-2005
Mensajes: 4
Antigüedad: 19 años, 2 meses
Puntos: 0
muchas gracias, Al Zuwaga, eres un crack!!
  #6 (permalink)  
Antiguo 02/05/2005, 09:44
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
uh? Si, si... ya quisiera serlo.
Igualmente, de nada :)
__________________
...___...
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 15:30.