Mostrar formulario oculto y precesar con ajax

En este artículo vamos a explicar con detalle dos detalles que podrían incluirse en la mayoría de nuestras páginas Web.

Por un lado tendremos un formulario oculto que mostraremos mediante un link utilizando jQuery con los métodos hide() y show() y, por otro, el procesado de la información con jQuery y Ajax + PHP.

Como siempre que vamos a trabajar con jQuery, necesitaremos incluir en el <head> de nuestra página la librería además de los scripts necesarios.

<script type="text/javascript">
$(document).ready(function(){
  $("#hide").click(function(){
    $("#element").hide();
  });
  $("#show").click(function(){
    $("#element").show();
  });
});
</script>

El código anterior es el que se encarga de mostrar y ocultar el formulario utilizando las funciones hide() para ocultar y show() para mostrar el contenido de un contenedor con id=»element» que de entrada estará oculto.

Y para procesar el formulario:

<script type="text/javascript">

$(document).ready(function() {

    $("#enviar-btn").click(function() {

        var name = $("input#name").val();
        var message = $("textarea#message").val();

        var dataString = 'name=' + name + '&message=' + message;

        $.ajax({
            type: "POST",
            url: "addmessage.php",
            data: dataString,
            success: function() {
                $("#element").hide();
                $('#newmessage').append('<h2>Tu información ha sido recibida correctamente!</h2><table><tr><td>Nombre:</td><td>'+name+'</td></tr><tr><td>Mensaje:</td><td>'+message+'</td></tr></table>');
            }
        });
        return false;
    });
});
</script>

La explicación del código anterior es simple, tras pulsar el botón con id=»enviar-btn», recogemos los datos del formulario para procesarlos en el archivo «addmessage.php» que recogerá los datos mediante el método POST para enviarlos por correo o guardarlos en una base de datos o para lo que te interese.

Al finalizar el proceso, informamos mediante el success de jQuery que la información se ha recibido correctamente y mostramos los datos recibidos.

En nuestro <body> tendremos algo como lo siguiente:

<a href="#" id="show">Mostrar</a>
<div id="element" style="display: none;">
   <div id="close"><a href="#" id="hide">cerrar</a></div>
   <form method="post" action="">
        Nombre:<br/>
        <input type="text" id="name" name="name" size="40" /><br/><br/>
        Mensaje:<br/>
        <textarea name="message" id="message" rows="6" cols="40"></textarea>
        <br/><br/>
        <div style="margin-left: 376px;"><input name="submit" type="submit" value="enviar" id="enviar-btn" /></div>
    </form>
</div>

Tenemos el link que abrirá el formulario y dentro del formulario tendremos otro link que lo cerrará y un botón para enviar la información.

Gracias a la tecnología Ajax la información se puede enviar y procesar sin necesidad de recargar toda la página. En el ejemplo en funcionamiento no se nota mucho el efecto pero si estuvieramos en una página con mucho contenido, podría ser un kaos si esta información tiene que ser enviada al servidor para ser procesada.

Ver ejemplo en funcionamiento

Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
Te ha servido? Valora esta entrada!
(9 votos, promedio: 5 de 5)
Comparte en las redes sociales
¿Buscas trabajo de programador?

6 respuestas a “Mostrar formulario oculto y precesar con ajax”

  1. Gizmo dice:

    Muy buena tu explicación ¿Cómo podría enviar esos datos a una tabla mysql?

  2. Luis Torres dice:

    Una pregunta como seria el codigo php?

    • Jose Aguilar dice:

      Hola buenas tardes,

      El archivo addmessage.php es para armar la lógica de la programación. Eso dependerá de lo que desees hacer a la hora de enviar el formulario. En el caso del ejemplo, por seguridad no estamos haciendo nada, pero se podría enviar un email, registrar en la base de datos, etc.

      Saludos

  3. oscar dice:

    excelentes tus publicaciones, gracias por la info+

  4. kkaa dice:

    me encanto

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ver más sobre