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

Recogida datos formulario con for each

Estas en el tema de Recogida datos formulario con for each en el foro de ASP Clásico en Foros del Web. Hola: Estoy recogiendo los datos de un formulario cuyos campos se forman de forma dinamica de acuerdo a los datos que tomo de una tabla, ...
  #1 (permalink)  
Antiguo 02/12/2004, 05:37
 
Fecha de Ingreso: marzo-2003
Mensajes: 48
Antigüedad: 21 años, 3 meses
Puntos: 0
Recogida datos formulario con for each

Hola:

Estoy recogiendo los datos de un formulario cuyos campos se forman de forma dinamica de acuerdo a los datos que tomo de una tabla, hay datos que ya conozco, los muestro y los paso en campos tipo hidden y otros que tiene que introducir el cliente.

Otras veces he utilizado un for each para recuperar los datos y guardarlos en un array de la forma:

i=0
for each campo in request.form
if campo <> enviar then
caracteristica(i)=campo
valor(i)=request.form(campo)
i=i+1
end if
next

Esto funciona perfectamente si el el formulario tiene una estructura:
nombre:<input type=text name="nombre">
(o en una tabla con dos columnas)

Pero si el formulario tiene por ejemplo una estructura como la siguiente:

<form action="datos.asp" method="post">
<table>
<tr>
<td class="textob1">&nbsp;Referencia</td>
<td class="textob1">&nbsp;Art&iacute;culo</td>
<td class="textob1">&nbsp;Precio (&euro;)</td>
<td class="textob1">&nbsp;Cantidad</td>
<td class="textob1">&nbsp;% Dto.</td>
</tr>

<tr>
<td class="texto1">&nbsp;29198 <input type="hidden" name="ref0" value="29198" ></td>
<td class="texto1">&nbsp;Camisa<input type="hidden" name="articulo0" value="Falda ></td>
<td class="texto1">&nbsp;15<input type="hidden" name="precio0" ></td>
<td class="texto1">&nbsp;<input type="text" name="cantidad0" size="6" ></td>
<td class="texto1">&nbsp;<input type="text" name="dto0" size="6" ></td>
</tr>

<tr>
<td class="texto1">&nbsp;18719 <input type="hidden" name="ref1" value="18719" ></td>
<td class="texto1">&nbsp;GORRA <input type="hidden" name="articulo1" value="GORRA"></td>
<td class="texto1">&nbsp;5,98<input type="hidden" name="precio1" ></td>
<td class="texto1">&nbsp;<input type="text" name="cantidad1" size="6" ></td>
<td class="texto1">&nbsp;<input type="text" name="dto1" size="6" ></td>
</tr>
<tr>
<td colspan="5" align="center">&nbsp; <input type="submit" name="enviar" value="Enviar" class="boton">
<input type="hidden" name="parte" value="2"></td>
</tr>
</table>
</form>

Los campos los recoge pero sin guardar un orden predefinido. He probado con tabindex y sin ellos. Sin lograr el resultado deseado.

Alguien sabe como solucionar el problema para que en los array exista un orden siempre fijo para el nombre de los campos y sus respectivos valores.

Saludos
  #2 (permalink)  
Antiguo 02/12/2004, 08:24
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Otra forma de hacer lo que quieres es colocarles el MISMO nombre a los campos de formulario comunes y guardarlos en el vector mediante la sentencia SPLIT.
Los manejarías por su posición de igual forma. Solo que tendías tandos vectores como campos de formulario difernetes tengas (según veo en el ejemplo, solo 5).

Saludos
  #3 (permalink)  
Antiguo 02/12/2004, 12:14
 
Fecha de Ingreso: marzo-2003
Mensajes: 48
Antigüedad: 21 años, 3 meses
Puntos: 0
Hola:

Gracias Myakire. Lo he hecho de la forma que indicaste y me funciona muy bien.

Saludos
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 01:53.