Consulta sobre refresh en formulario

17/06/2007 - 18:02 por Arturo Costa Delgado | Informe spam
Buenos días:
He buscado en el grupo en mensajes pasados por si alguien había
consultado lo que voy a consultarles, pero aparentemente no ha habido
una consulta sobre el tema, al menos no he podido encontrarla.

Tengo un formulario que es procesado sin ningún problema. Lo que sucede
es que todo es en una sola página (index.asp) pues utilizo ajax para
poder mostrar los distintos contenidos en una misma sección de la
página. El formulario al ser procesado recarga toda la página (esto es
porque también suben una imagen).

He incluído scripts en javascript para anular la tecla F5 y el menú
contextual que se muestra con el botón derecho del mouse, pero
obviamente aún quedan 2 opciones (al menos en el IE7) que es el botón de
reload (al costado de la barra de dirección) y el propio menú del browser.

Imagino que estos botones no se podrán anular como lo hice con el del
F5, pero ¿hay alguna forma para evitar que se recarguen los datos del
formulario?.

He considerado colocar antes de procesar los datos, una consulta de este
tipo:

temp="select * from clientes where nombre='" & request("nombre") & "'
and empresa='" & request("empresa") & "'

y así todos los campos que he ingresado en la primera vez con el
formulario, para buscar registro duplicados, y si los encuentra (que
debería) pues anular el proceso, pero no funciona correctamente, ignoro
por que.

También utilizo estos comandos al inicio de la página (en un include)

starttime = Timer()
Session.lcidq78
Response.Expires=0
Response.ExpiresAbsolute = Now()
Response.addHeader "pragma", "no-cache"
Response.addHeader "cache-control","private"
Response.CacheControl = "no-cache"
Response.CacheControl = "Private"
Response.Buffer=True


¿Alguien tiene una idea de como poder evitar la recarga de datos y el
re-ingreso de los mismos via formulario?

Agradezco desde ya todo comentario y orientación que me puedan brindar.
Un saludo desde Lima, Perú

ACD

Preguntas similare

Leer las respuestas

#1 Nuno Santos
18/06/2007 - 16:38 | Informe spam
Una solución es hacer un response.redirect en cada ación que hagas en la
página.
Después caso hagan refresh lo que hace es el redirect para la misma página,
y no la ación de inserir, por ejemplo.

NS

"Arturo Costa Delgado" wrote in message
news:
Buenos días:
He buscado en el grupo en mensajes pasados por si alguien había consultado
lo que voy a consultarles, pero aparentemente no ha habido una consulta
sobre el tema, al menos no he podido encontrarla.

Tengo un formulario que es procesado sin ningún problema. Lo que sucede es
que todo es en una sola página (index.asp) pues utilizo ajax para poder
mostrar los distintos contenidos en una misma sección de la página. El
formulario al ser procesado recarga toda la página (esto es porque también
suben una imagen).

He incluído scripts en javascript para anular la tecla F5 y el menú
contextual que se muestra con el botón derecho del mouse, pero obviamente
aún quedan 2 opciones (al menos en el IE7) que es el botón de reload (al
costado de la barra de dirección) y el propio menú del browser.

Imagino que estos botones no se podrán anular como lo hice con el del F5,
pero ¿hay alguna forma para evitar que se recarguen los datos del
formulario?.

He considerado colocar antes de procesar los datos, una consulta de este
tipo:

temp="select * from clientes where nombre='" & request("nombre") & "' and
empresa='" & request("empresa") & "'

y así todos los campos que he ingresado en la primera vez con el
formulario, para buscar registro duplicados, y si los encuentra (que
debería) pues anular el proceso, pero no funciona correctamente, ignoro
por que.

También utilizo estos comandos al inicio de la página (en un include)

starttime = Timer()
Session.lcidq78
Response.Expires=0
Response.ExpiresAbsolute = Now()
Response.addHeader "pragma", "no-cache"
Response.addHeader "cache-control","private"
Response.CacheControl = "no-cache"
Response.CacheControl = "Private"
Response.Buffer=True


¿Alguien tiene una idea de como poder evitar la recarga de datos y el
re-ingreso de los mismos via formulario?

Agradezco desde ya todo comentario y orientación que me puedan brindar.
Un saludo desde Lima, Perú

ACD
Respuesta Responder a este mensaje
#2 Arturo Costa Delgado
18/06/2007 - 20:23 | Informe spam
Nuno Santos escribió:
Una solución es hacer un response.redirect en cada ación que hagas en la
página.
Después caso hagan refresh lo que hace es el redirect para la misma página,
y no la ación de inserir, por ejemplo.

NS



Muchas gracias por responder. No estoy seguro de haberte entendido. Se
como usar el Response.Redirect pero ¿dónde lo ubico?. Ten en cuenta que
estamos hablando de una única página, index.asp, que es la que se
muestra siempre. En esta página hay un layer que uso para cargar
información mediante Ajax. Uno de los bloques de información es el
formulario al que hago mención. Este formulario tiene la opción de poder
subir archivos por lo que debe ser procesado y no simplemente pasar
datos con Ajax (al menos no se como hacerlo en el caso de subir archivos).

Utilizo el xeupload.asp para subir archivos.
Te agradecería si pudieras explicarte un poco más.
Aprecio mucho tu interés y apoyo.
Un saludo desde Lima, Perú

ACD
Respuesta Responder a este mensaje
#3 Nuno Santos
19/06/2007 - 10:02 | Informe spam
No sé muy bien cómo estás haciendo, pero, después de hacer el procesamiento
del form no puedes de alguna forma hacer un redirect o entonces mediante
javascript un window.location?

Cuando haces el procesamiento del form recarregas toda la página index o
sólo la layer?

Puedes colocar un ejemplo del código para ver si consigo ayudarte más,

NS



"Arturo Costa Delgado" wrote in message
news:%
Nuno Santos escribió:
Una solución es hacer un response.redirect en cada ación que hagas en la
página.
Después caso hagan refresh lo que hace es el redirect para la misma
página, y no la ación de inserir, por ejemplo.

NS



Muchas gracias por responder. No estoy seguro de haberte entendido. Se
como usar el Response.Redirect pero ¿dónde lo ubico?. Ten en cuenta que
estamos hablando de una única página, index.asp, que es la que se muestra
siempre. En esta página hay un layer que uso para cargar información
mediante Ajax. Uno de los bloques de información es el formulario al que
hago mención. Este formulario tiene la opción de poder subir archivos por
lo que debe ser procesado y no simplemente pasar datos con Ajax (al menos
no se como hacerlo en el caso de subir archivos).

Utilizo el xeupload.asp para subir archivos.
Te agradecería si pudieras explicarte un poco más.
Aprecio mucho tu interés y apoyo.
Un saludo desde Lima, Perú

ACD
Respuesta Responder a este mensaje
#4 Arturo Costa Delgado
19/06/2007 - 17:28 | Informe spam
Nuno Santos escribió:
No sé muy bien cómo estás haciendo, pero, después de hacer el procesamiento
del form no puedes de alguna forma hacer un redirect o entonces mediante
javascript un window.location?

Cuando haces el procesamiento del form recarregas toda la página index o
sólo la layer?

Puedes colocar un ejemplo del código para ver si consigo ayudarte más,

NS


Muchas gracias por tu interés. Veamos
El formulario se encuentra en un layer llamado CONTENEDOR y es cargado
vía Ajax. Este formulario tiene la siguiente sintáxis:

<form action="index.asp?accion=procesar" enctype="multipart/form-data"
name="calculadora" method="post">

Si bien es cierto usando Ajax puedo cargar los datos en el mismo layer y
procesarlos, dado que este formulario incluye un campo del tipo FILE y
el encriptamiento es "multipart/form-data", no puedo pasar los datos
simplemente como variables porque entonces no podría procesar el upload
del archivo .

Al inicio de la página index.asp donde esta el layer CONTENEDOR tengo
esta rutina

<%
If Request("accion")="procesar" Then
Dim Subir, objFich, fich
Set Subir = New xelUpload
Subir.Upload()

varNombre=Subir.Form("nombre")
..
todo el proceso para subir el archivo y guardar los datos de los otros
campos en la base de datos.
..

Else

.
el resto de la página index.asp
.
End If
%>

La página en cuestión la puedes ver en

http://www.mastersdesigners.com/clientes/cedinet/

Ojalá haya sido suficiente como para darte un concepto más claro de mi
entorno. Agradezco enormemente tu apoyo. Estaré al tanto de tus
observaciones y sugerencias.

Un saludo desde Lima, Perú

ACD
Respuesta Responder a este mensaje
#5 urko binarya
20/06/2007 - 09:55 | Informe spam
podria solucionarte cambiar el target del formulario?

<form action="index.asp?accion=procesar" target="cargate"
enctype="multipart/form-data"
name="calculadora" method="post">
en este caso un iframe pero podria ser un div?
<iframe id="cargate" name="cargate" width="1" height="1" ></iframe>
y claro en vez de toda la index.asp solo tendrias que procesar los datos
del formulario.
luego en esa misma pagina si tienes que sustituir el div del formulario con
algun "Datos enviados" lo podrias hacer con javascript
y despues redirigir a una en blanco por ejemplo para evitar cargar los datos
otra vez.

Tambien en el caso que tienes podrias comprobar en la BD que TODOS los
datos que se envian NO esten ya introducidos, o
si no cargar unas variables de sesion con los datos recogidos del formulario
y si son iguales no hacer nada.
Luego si se va a otra página ponerlos otra vez a vacio.
saludos
urko


"Arturo Costa Delgado" escribió en el
mensaje news:
Nuno Santos escribió:
No sé muy bien cómo estás haciendo, pero, después de hacer el
procesamiento del form no puedes de alguna forma hacer un redirect o
entonces mediante javascript un window.location?

Cuando haces el procesamiento del form recarregas toda la página index o
sólo la layer?

Puedes colocar un ejemplo del código para ver si consigo ayudarte más,

NS


Muchas gracias por tu interés. Veamos
El formulario se encuentra en un layer llamado CONTENEDOR y es cargado vía
Ajax. Este formulario tiene la siguiente sintáxis:

<form action="index.asp?accion=procesar" enctype="multipart/form-data"
name="calculadora" method="post">

Si bien es cierto usando Ajax puedo cargar los datos en el mismo layer y
procesarlos, dado que este formulario incluye un campo del tipo FILE y el
encriptamiento es "multipart/form-data", no puedo pasar los datos
simplemente como variables porque entonces no podría procesar el upload
del archivo .

Al inicio de la página index.asp donde esta el layer CONTENEDOR tengo esta
rutina

<%
If Request("accion")="procesar" Then
Dim Subir, objFich, fich
Set Subir = New xelUpload
Subir.Upload()

varNombre=Subir.Form("nombre")
..
todo el proceso para subir el archivo y guardar los datos de los otros
campos en la base de datos.
..

Else

.
el resto de la página index.asp
.
End If
%>

La página en cuestión la puedes ver en

http://www.mastersdesigners.com/clientes/cedinet/

Ojalá haya sido suficiente como para darte un concepto más claro de mi
entorno. Agradezco enormemente tu apoyo. Estaré al tanto de tus
observaciones y sugerencias.

Un saludo desde Lima, Perú

ACD
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida