Envio de formulario por Ajax
PHP

Envio de formulario por Ajax

Hoy aprenderemos a realizar el envio de un formulario por ajax, para el backend se puede realizar con casi cualquier lenguaje web y para el frontend usaremos jquery ya que nos ayudará con sus métodos prácticos para ajax.



1. Maquetar formulario

Para comenzar a realizar este pequeño tutorial necesitamos tener un archivo *.html creado, estaremos trabajando con html5 en todo momento así que es importante resaltar que algunas propiedades en los controles de formulario son netamente funcionales en HTML5.


<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Enviar formulario con ajax</title>
<head>
<body>
    <form id="formulario" action="recibir.php" method="post">
        <input type="text" placeholder="Escribe tu nombre" name="nombre" required autofocus title="Ingresa tu nombre porfavor">
        <input type="number" placeholder="Ingresa tu edad" name="edad" required title="Ingresa tu edad porfavor">
        <br><br>
        <input type="submit" id="btnEnviar" name="btnEnviar" value="Enviar formulario">
    form>
    <hr>
    <p class="respuesta">

    <p>
    <script src="https://code.jquery.com/jquery-2.2.2.min.js">script>
    <script src="js/enviar.js">script>
<body>


En el archivo html vemos que tenemos un formulario con dos campos (Nombre, Edad) Los cuales serán enviados por método POST.

2. Archivo *.js

Para realizar el envío por medio de AJAX en este caso vamos a hacer uso de la librería Jquery, para lo cual insertamos el script haciendo referencia al jquery por encima de nuestro código o archivo en donde hacemos el ajax; Esto es importante de lo contrario vamos a tener problemas y al final no va a funcionar nuestro código.


<script src="https://code.jquery.com/jquery-2.2.2.min.js">script>
<script src="js/enviar.js">script>


Ahora vamos a ver nuestro código para realizar el envío:


$(document).ready(function () {
    $("#formulario").bind("submit",function(){
        // Capturamnos el boton de envío
        var btnEnviar = $("#btnEnviar");
        $.ajax({
            type: $(this).attr("method"),
            url: $(this).attr("action"),
            data:$(this).serialize(),
            beforeSend: function(){
                /*
                * Esta función se ejecuta durante el envió de la petición al
                * servidor.
                * */
                // btnEnviar.text("Enviando"); Para button 
                btnEnviar.val("Enviando"); // Para input de tipo button
                btnEnviar.attr("disabled","disabled");
            },
            complete:function(data){
                /*
                * Se ejecuta al termino de la petición
                * */
                btnEnviar.val("Enviar formulario");
                btnEnviar.removeAttr("disabled");
            },
            success: function(data){
                /*
                * Se ejecuta cuando termina la petición y esta ha sido
                * correcta
                * */
                $(".respuesta").html(data);
            },
            error: function(data){
                /*
                * Se ejecuta si la peticón ha sido erronea
                * */
                alert("Problemas al tratar de enviar el formulario");
            }
        });
        // Nos permite cancelar el envio del formulario
        return false;
    });
});


El método bind() se utiliza para conectar un controlador de eventos directamente a los elementos, es decir nosotros podemos invocar a un elemento $(".boton") y por medio del método bind() ejecutar uno o mas eventos sobre sí.

También dentro de este método bind() usamos un return false , esto sirve para cancelar el envió directo del formulario hacia el archivo php, dado que el ajax se ejecuta sobre la misma pantalla sin refrescarla.



3. El archivo *.php

Para poder hacer el envío del formulario y la lectura de los campos estamos haciendo uso de php, Lenguaje de programación de lado servidor.


echo "Hola ".$_REQUEST["nombre"].", Tienes ".$_REQUEST["edad"]." Años.";


Al final debemos encontrar un resultado como este cuando hagamos el envió del formulario.


  • Compartir

Relacionados

Cargar imágenes con PHP y Ajax
Cargar imágenes con PHP y Ajax
May 16,2017
Conexión a MySQL con PDO en PHP
Conexión a MySQL con PDO en PHP
June 01,2017
2 Extensiones para trabajar con PHP en Sublime Text
2 Extensiones para trabajar con PHP en Sublime Text
June 27,2018

Cursos relacionados

Login y Registro con PHP
Login y Registro con PHP
PHP
Crea tu Tienda OnLine
Crea tu Tienda OnLine
PHP
Mantenimiento de datos con PHP PDO y MVC
Mantenimiento de datos con PHP PDO y MVC
PHP
b

Adblock Detectado

Porfavor, desactíve el bloqueador de anuncios para poder visualizar esta página y a continuación recargue.