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

#6 Nuno Santos
20/06/2007 - 09:59 | Informe spam
A ver si esto te ayuda:

Hice ahorita un teste en la página (espero que sea de teste, pués los dados
no son válidos :)), pienso que lo que debes hacer es colocar un redirect
después de hacer el procesamiento del form.

<%
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.
..


' Haces el redirect aquí..

Response.Redirect(Request.ServerVariables("URL"))


Else

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






"Arturo Costa Delgado" wrote in message
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
#7 Nuno Santos
20/06/2007 - 10:01 | Informe spam
Otra solución es hacer una página que te haga el procesamiento del form.

Index.asp

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



Procesar.asp

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.
..

'redirect para el index

Response.Redirect("index.asp")



NS


"Arturo Costa Delgado" wrote in message
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
#8 urko binarya
20/06/2007 - 10:03 | Informe spam
y otra posibilidad es en vez de
el action poner index.asp...
poner otra pagina procesarformulario.asp
y luego como te comenta Nuno hacer el
response.redirect("index.asp")

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
#9 urko binarya
20/06/2007 - 10:04 | Informe spam
vaya la misma idea en cerocomasegundos :-)

saludos
urko
"Nuno Santos" <nunos7@[REMOVER]hotmail.com> escribió en el mensaje
news:
Otra solución es hacer una página que te haga el procesamiento del form.

Index.asp

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



Procesar.asp

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.
..

'redirect para el index

Response.Redirect("index.asp")



NS


"Arturo Costa Delgado" wrote in message
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
#10 Nuno Santos
20/06/2007 - 10:11 | Informe spam
:)

NS

"urko binarya" wrote in message
news:%
vaya la misma idea en cerocomasegundos :-)

saludos
urko
"Nuno Santos" <nunos7@[REMOVER]hotmail.com> escribió en el mensaje
news:
Otra solución es hacer una página que te haga el procesamiento del form.

Index.asp

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



Procesar.asp

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.
..

'redirect para el index

Response.Redirect("index.asp")



NS


"Arturo Costa Delgado" wrote in message
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 AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida