Foros del Web » Programando para Internet » Jquery »

Mostrar mensaje despues de enviar el formulario

Estas en el tema de Mostrar mensaje despues de enviar el formulario en el foro de Jquery en Foros del Web. Hola amigas y amigos a ver si me pueden ayudar con esto: Tengo un codigo que me muestra un mensaje que dice :"gracias por participar" ...
  #1 (permalink)  
Antiguo 19/07/2018, 10:14
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 9 meses
Puntos: 5
Mostrar mensaje despues de enviar el formulario

Hola amigas y amigos a ver si me pueden ayudar con esto:

Tengo un codigo que me muestra un mensaje que dice :"gracias por participar" y

justo despues manda el formulario.

Pero lo que necesito es que primero mande el formulario y despues muestre el mensaje de

"gracias por participar". Vamos justo al reves.

Cualquier ayuda estaria muy agradecido miren este es mi codigo:

Código Javascript:
Ver original
  1. $(".mensaje").fadeIn(1000).delay(2000);
  2.  
  3.            $(".mensaje").fadeOut(1000);
  4.  
  5.             setTimeout(function()
  6.  
  7.                 {
  8.                     $('form').submit();
  9.                 },4000);
  #2 (permalink)  
Antiguo 19/07/2018, 14:20
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: Mostrar mensaje despues de enviar el formulario

Una vez que se ejecuta el envío del formulario, si no se está haciendo vía una petición asíncrona (AJAX), entonces la ventana recargará, por lo que será imposible mostrar mensaje alguno.

Lo que puedes hacer es enviarlo vía AJAX, de esta forma, no solo podrás mostrar un mensaje luego de haber ejecutado el envío de la información sino cuando se haya obtenido una respuesta desde el lado del servidor.

Código Javascript:
Ver original
  1. $("form").on("submit", function(event){
  2.     event.preventDefault(); //Se cancela el envío "normal"
  3.  
  4.     //Y se procede a hacerlo vía AJAX
  5.     $.ajax({
  6.         url: $(this).prop("action"),
  7.         type: $(this).prop("method"),
  8.         data: $(this).serialize(),
  9.         dataType: "json",
  10.     }).done(function(response){
  11.         if (response.estado == "ok"){
  12.             alert("El proceso fue exitoso: " + response.mensaje);
  13.         }
  14.         else{
  15.             alert("Ha ocurrido un error: " + response.mensaje);
  16.         }
  17.     }).fail(function(xhr, error){
  18.         alert(error);
  19.     });
  20. });

En el archivo del lado del servidor (un ejemplo con PHP):

Código PHP:
Ver original
  1. //Instrucciones
  2. //...
  3. //Más instrucciones
  4. //...
  5.  
  6. //Supongamos que guardarás datos
  7.  
  8. if ($guardado){
  9.     echo json_encode([
  10.         'estado' => 'ok',
  11.         'mensaje' => 'Mensaje de éxito' //Por ejemplo: Los 54 datos han sido guardados satisfactoriamente
  12.     ]);
  13. }
  14. else{
  15.     echo json_encode([
  16.         'estado' => 'error',
  17.         'mensaje' => 'Descripción del error' //Si usas la extensión MySQLi, puedes usar la función mysqli_error()
  18.     ]);
  19. }

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 19/07/2018 a las 14:27 Razón: Mejora
  #3 (permalink)  
Antiguo 20/07/2018, 06:59
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 9 meses
Puntos: 5
Respuesta: Mostrar mensaje despues de enviar el formulario

Muchas gracias alexis88, he entendido bien por que no puede ser como digo ya que al mandar el formulario se refresca la pantalla.
tienes razon.

Pero Mira tengo el siguiente codigo que me envia de manera automatica sin hacer click en un boton enviar del formulario.

Y se manda de manera automatica justo cuando se marcan 3 radio butons.

Podrias ayudarme con mi codigo para hacer que mande un mensaje de enviado cuando se envien los datos del formulario.

Mira este es mi codigo.

Código Javascript:
Ver original
  1. $(":radio").change(function()
  2.  
  3.       {
  4.         var names = {};
  5.  
  6.         $(':radio').each(function()
  7.  
  8.           {
  9.             names[$(this).attr('name')] = true;
  10.           });
  11.  
  12.  
  13.  
  14.         var count = 0;
  15.  
  16.         $.each(names, function()
  17.  
  18.           {
  19.             count++;
  20.           });
  21.  
  22.  
  23.  
  24.         if ($(':radio:checked').length === count)
  25.  
  26.           {
  27.             //$('form').submit();
  28. /*
  29.            $(".mensaje").fadeIn(1000).delay(2000);
  30.  
  31.            $(".mensaje").fadeOut(1000);
  32.  
  33.             setTimeout(function()
  34.  
  35.                 {
  36.                     $('form').submit();
  37.                 },4000);
  38.  
  39. */
  40.           }
  41.  
  42.       }).change();
  #4 (permalink)  
Antiguo 20/07/2018, 08:45
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: Mostrar mensaje despues de enviar el formulario

En el código que muestras, solo veo que se ejecutan dos bucles y la evaluación de una condición. No se muestra ninguna línea que ejecute el envío de los datos del formulario. De cualquier forma, en el ejemplo que te he mostrado, se controla el envío de los datos sin distinguir si se ha presionado algún botón o si se ha dado un clic en otra parte. Adáptalo a lo que tienes y prueba.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: formulario, mensaje
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 03:06.