Foros del Web » Programando para Internet » Javascript »

Envio de formulario

Estas en el tema de Envio de formulario en el foro de Javascript en Foros del Web. Saludos! tengo un formulario de votación, el cual lo envío desde un ancla con un: javascript :document.frm.submit(); En la página que recibo el formulario, agrego ...
  #1 (permalink)  
Antiguo 18/03/2005, 11:01
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago de Chile
Mensajes: 115
Antigüedad: 21 años
Puntos: 0
Pregunta Envio de formulario

Saludos! tengo un formulario de votación, el cual lo envío desde un ancla con un:

javascript:document.frm.submit();

En la página que recibo el formulario, agrego la votación y creo una cookie indicando que el usuario ya votó, para que no pueda volver a hacerlo. El tema me funciona bien, ya que si descubro que el usuario ya tiene la cookie, simplemente no considero su voto y ya, pero tengo un problema con los datos que recibo.

Es posible, de alguna forma, evitar el mensaje "reintentar" que aparece cuando actualizo la página?, es decir, en la página que recibe el formulario, al presionar F5 (por ejemplo), dice "La página no puede actualizarse sin reenviar la información..." + el famoso boton reintentar.

Hay algo que me permita evitar esto en la página que recibe el formulario?

Había pensado que, en lugar de evitar el formulario, en la página donde está la encuesta verificar por medio de Javascript si la cookie ya existe, y si es así, no generar el evento .submit(), sino generar sólo un enlace a la página de resultados, alguna idea con respecto a esto?

Gracias,
__________________
~[ The Hard ]~
- Sólo sé que nada sé...
- Hay un placer en la locura, que sólo los locos conocen...
- ¿Trabajas para vivir, o vives para trabajar?
  #2 (permalink)  
Antiguo 18/03/2005, 16:00
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
manejas PHP cierto???.. el tema es sencillo; ahora tienes formulario->resultados ... el truco es añadir una página más... quedando formulario -> proceso -> resultados ...
Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 18/03/2005, 22:41
Avatar de marioman  
Fecha de Ingreso: enero-2004
Mensajes: 143
Antigüedad: 20 años, 3 meses
Puntos: 0
puedes poner la pagina, deseo hacer algo asi, lo malo que no se usar php, todo lo hago con html
__________________
M@R1o :policia:

No es delito decir lo que piensas
  #4 (permalink)  
Antiguo 19/03/2005, 03:01
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Puedes poneer lo siguiente:

en el anchor:

<a href="//Enviar formulario" onclick="enviarForma();return false">Mandar formulario</a>

y en el head de la página:

function enviarForma(){
if(document.cookie){
location.href="resultados.php"
}
else{
document.forms['frm'].submit();
}
}

O tambien puedes hacer que la misma página te muestre el enlace a los resultados o a enviar el formulario según hayas votado o no. Esto es más fácil hacerlo con el lenguaje del lado del servidor que emplees. Pero con JS sería:

En el head:

<script>
function construirEnlace(){
destino=(document.cookie)?"resultados.php":"javasc ript:document.forms['frm'].submit();";
texto=(document.cookie)?"Mirar resultados":"Enviar Formulario";
document.write('<a href="'+destino+'">'+texto+'</a>');
}
</script>

Y donde quieras que vaya el enlace para enviar el código pones:
<script>construirEnlace()</script>
No sé si te servirá...
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #5 (permalink)  
Antiguo 19/03/2005, 19:10
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago de Chile
Mensajes: 115
Antigüedad: 21 años
Puntos: 0
Hola!

Hola jam1138, Estoy con ColdFusion, no PHP, y por necesidad necesito hacer esto con Javascript (principalmente por el asunto del cookie)

Lo siento marioman, no puedo poner la página, ya que son una monstruosidad de includes, pero cuando dé con la solución exacta, publico lo que hice en js :)

Hola KarlanKas, efectivamente, es algo aproximado a eso lo que busco (y lo que tengo), pero aún me falta solucionar un problema en la página de destino, para que sea la misma (como pasar parámetros por GET en lugar de POST)

Gracias a todos.
__________________
~[ The Hard ]~
- Sólo sé que nada sé...
- Hay un placer en la locura, que sólo los locos conocen...
- ¿Trabajas para vivir, o vives para trabajar?
  #6 (permalink)  
Antiguo 20/03/2005, 03:50
Avatar de Solrak  
Fecha de Ingreso: marzo-2003
Mensajes: 30
Antigüedad: 21 años, 1 mes
Puntos: 0
No entiendo lo que dices. ¿Que la página de destino tiene que ser la misma que la del formulario? Pero eso puede ser con post... ¿o quieres añadirle parámetros? Es que, perdona, no he entendido muy bien.

Coldfusion no puede usar cookies?
__________________
http://www.conventoderecas.com

Última edición por KarlanKas; 20/03/2005 a las 03:53
  #7 (permalink)  
Antiguo 20/03/2005, 03:58
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
No conozco el coldfusion. Pero podrías poner un condicional... Ya sé!

Creas un campo hidden en el formulario con nombre destino (por ejemplo):

<input type="hidden" name="destino">

Y en el script de antes pones:

function enviarForma(){
document.forms['frm']['destino']=document.cookie;
document.forms['frm'].submit();
}
Luego en la página de destino del formulario no tienes más que comprobar si la variable destino es true y según sea true montas un include u otro. Aunque bien pensado puedes ahorrarte todo eso y mirar en la página de destino si existe la cookie y cambiar los includes según exista o no...
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #8 (permalink)  
Antiguo 20/03/2005, 09:01
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago de Chile
Mensajes: 115
Antigüedad: 21 años
Puntos: 0
Nono... ColdFusion SI usa cookies, de hecho, eso es lo que quiero hacer, que si en la página del formulario detecta que tiene una cookie en particular, no habilite el "Submit", sino un simple enlace... Ya lo tengo casi resuelto, sólo que la 2da página, la de destino del formulario no debe procesar nada en caso de que no se aplique el submit...

La idea es, simplemente, que al presionar F5 en la página de resultados, no me muestre el mensaje de "Reintentar" cuando se envían los datos...

Gracias!
__________________
~[ The Hard ]~
- Sólo sé que nada sé...
- Hay un placer en la locura, que sólo los locos conocen...
- ¿Trabajas para vivir, o vives para trabajar?
  #9 (permalink)  
Antiguo 20/03/2005, 14:47
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Existe en las FAQ's de JS cómo inhabilitar la tecla F5.
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
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 11:53.