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

Envío automático de formulario. No debe estar visible

Estas en el tema de Envío automático de formulario. No debe estar visible en el foro de ASP Clásico en Foros del Web. Hola a todos!!! Ya empezamos con las ocurrencias. Resulta que tengo un formulario de ingreso que he convertido en varios para comodidad. Primero se ingresan ...
  #1 (permalink)  
Antiguo 05/07/2005, 14:32
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 8 meses
Puntos: 2
Pregunta Envío automático de formulario. No debe estar visible

Hola a todos!!!
Ya empezamos con las ocurrencias.
Resulta que tengo un formulario de ingreso que he convertido en varios para comodidad.
Primero se ingresan datos generales, despues una serie de información relacionada con el cliente, información interna y por último (Opcional) Retiros de cosas que se han llevado del cliente.
Lo que hago para hacer estos ingresos, es lo mas obvio para un principiante... Tomo el primer formulario, lo envío a una pagina que procesa esos datos, toma los valores repetitivos en vectores, y luego hace las actualizaciones e inserts en las tablas que correspondiera. Si termina esto con éxito, pasa a otro formulario que hace algo similar... y así hasta terminar.
El hecho es que yo quiero ir acumulando los vectores en procesos separados, pero no ingresar nada hasta que la persona que está ingresando confirme que quiere ingresar todo tal y como lo fue colocando en los suscesivos formularios. Para esto, iría pasando todas las variables de un formulario al otro, para al final mostrar la estructura de datos a ingresar, en caso de confirmar el ingreso se harían todos los procesos como paso final antes de cerrar, y en el caso que se cancelara el ingreso, la base de datos no sufriría modificaciones absurdas.
El tema es que no quiero pasar los vectores por url, sino por formulario o algo así, que sea totalmente transparente al usuario.
Será posible esto???
Mil gracias a todos!!!
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #2 (permalink)  
Antiguo 05/07/2005, 14:58
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Con campos de tipo hidden?
A lo mejor no te entendi bien, pero si estoy en lo correcto, tu pasas por querystring las variables: "info1=algo&info2=algo_otro&info3=algomas", bueno, pues seria lo mismo, solo que

<input type="hidden" name="info1" value="algo">
<input type="hidden" name="info2" value="algo_mas">
etc...

Hay quienes hacen el manejo de los datos en un ASP intermedio y luego redirigen, esto para que si hay un proceso critico en medio de los dos formularios, puedas validar, se me esta ocurriendo que en lugar de redirigir, puedes hacer Server.Transfer y con ello tener acceso a todo lo que enviaste , a menos que llegue Neuron y diga lo contrario

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 05/07/2005, 15:07
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 8 meses
Puntos: 2
Buen dato!!!

Ok, me diste una buena idea.... el tema es que yo manejo tal y como dijiste un asp intermedio para varias validaciones, y una de las cosas que hace es cargar series de campos repetitivos en vectores.
El problema es que con el redirect perdía las variables que había cargado... ahora investigaré esto de server.Transfer a ver qué tal.
Y el tema es pasar los datos por form, porque no quiero que estén visibles en queryString. (Puro capricho vió )
Ahora me cierraría imagino que hasta mejor, porque lo que es confuso es asignar un vector entero a un solo campo hidden de un formulario... y despues querer enviarlo, lo que envíe ya no sería un vector sino un texto separado por comas... y debería hacer un split al final por cada campo que traiga comas y que pueda ser en serie... mucho lío, demasiada saturación para el pobre servidor.
Muchísimas gracias, en caso que no pueda comprender lo de server.Transfer te comento!!!! y si lo saco.... Soy GARDEL!!!! Jaja!!!
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #4 (permalink)  
Antiguo 29/11/2005, 11:55
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 8 meses
Puntos: 2
Ok, después de mucho dar vueltas y de varias interrupciones con otras tareas llegué a una conclusión....
No puedo con el Server.Transfer
Es que hice lo siguiente ya directamente en una página de prueba.
La primera se llama crea.asp y la segunda muestra.asp
en crea.asp puse
Dim mivar
mivar="Hola!"
Server.Transfer("muestra.asp")

en muestra.asp puse
Response.Write(mivar) y me sale este error:

Tipo de error:
Error de Microsoft VBScript en tiempo de ejecución (0x800A000D)
No coinciden los tipos: 'mivar'
/sitiosasp/muestravector.asp, line 4

Según tengo entendido no es necesario pasar variables de una pagina a la otra con el server.transfer pero... ¿Cómo recupero los datos para continuar trabajando?
Realmente estoy mareada
si alguien pudiera ayudarme un poco a ver si encuentro la luz al final del tunel...
Mil gracias de antemano a todos.
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #5 (permalink)  
Antiguo 29/11/2005, 12:38
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Bueno, mas bien los recursos que a los que puedes acceder son los del objeto request, no creo que variables creadas en el asp que redirige

Por ejemplo:

index.asp
<%
'Llamo a mis procedimientos

Server.Transfer("paso2.asp")
%>

Paso.asp
<%
Response.Write(Request.QueryString("variable"))
%>


Ahora si yo hago esta llamada

http://www.dominio.com/index.asp?variable=Hola%20Mundo

Ejecutara todos los procesos en el index.asp, hara una transferencia a paso2.asp, y paso2.asp imprimira

Hola Mundo

La URL no refleja el cambio, pero realmente estamos viendo otro archivo.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 29/11/2005, 12:44
Avatar de Hereje  
Fecha de Ingreso: junio-2002
Ubicación: Córdoba, Argentina
Mensajes: 439
Antigüedad: 22 años
Puntos: 2
Hola, yo enviaria todos los datos por formulario hasta llegar al final. Para separar en varios formularios (o páginas) podriamos iterar por la colección request.form para recuperar y volver a enviar los valores del formulario anterior en el actual sin la necesidad de escribir los input manualmente.

Se podria hacer todo en una misma página también si llevamos "un conteo" de etapas del proceso (validando en cada una) y al final guardamos todo en la bd.

Creo que en www.aspfacil.com hay un ejemplo, revisalo.

Hasta luego!
__________________
Sergio
  #7 (permalink)  
Antiguo 29/11/2005, 12:53
Avatar de macedo  
Fecha de Ingreso: enero-2002
Ubicación: Madrid
Mensajes: 124
Antigüedad: 22 años, 4 meses
Puntos: 0
Podrias ir cargando los datos en variables de sesion. Aunque si tarda mucho entre un formulario y el siguiente se podrían borrar.

Personalmente, lo que yo haría seria recoger los valores en una variable con separadores e irlos metiendo en un hidden form tras form para la final recoger ese campo y hacer un split.

En cuanto a que no se vean los valores en la url, cambia el method del formulario de GET a POST.

Saludos.
__________________
"Hay que simplificar las cosas tanto como sea posible, pero no más".
Albert Einstein.
  #8 (permalink)  
Antiguo 29/11/2005, 13:03
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
y si vas metiendo los datos a una base de datos?
  #9 (permalink)  
Antiguo 29/11/2005, 13:05
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 8 meses
Puntos: 2
Ok, gracias a ambos.
parece que he malinterpretado al Server.Transfer.
Tendré que hacerlo con varios formularios recuperando en cada uno los datos del anterior.
Lo que deberé hacer es constatar el límite de caracteres de los queryString o bien del metodo post por si acaso no cabe todo el contenido que tiene que pasarse hasta el final.
La otra opción que me queda es ir colocando todo en una tabla auxliar y en el momento de guardar los datos definitivos recuperarlos de esa tabla y pasarlos a la tabla de destino de la aplicación.... todavía no me decido pero les comento en cuanto encuentre una solución

Muchísimas gracias de nuevo por la ayuda.
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #10 (permalink)  
Antiguo 29/11/2005, 13:33
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
podrias ir metiendo los datos en la BD y en el ultimo paso si no requieres los datos simplemente lo borras y listo...
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 23:25.