Método POST en Laravel haciendo uso de AJAX

Laravel

Enviar un formulario mediante el método POST es una de las prácticas más difundidas al momento de guardar información en una base de datos cuando usamos PHP, así mismo esta función es muy utilizada debido que a diferencia del método GET los dato no viajan a travez de la url si no que van “ocultos” a la vista del usuario, en este artículo veremos de forma rápida como podemos enviar un formulario haciendo uso del método POST en Laravel, vamos a ello:

Método POST en Laravel Framework

Creando una ruta que reciba nuestro método POST:

Como es de saberse en Laravel todas las rutas de la aplicación se almacenan en el archivo routes.php que se encuentra en app\Http Donde crearemos nuestra ruta:

Route::post('mi_ruta_post', 'EjemploController@accion');

Un Controlador para la acción:

Teniendo esta ruta nos damos cuenta que debemos contar tambien con un controlador y una acción dentro de este, veamos:

Código:

<?php namespace App\Http\Controllers;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Http\Requests;

class EjemploController extends Controller {
    /*
    |--------------------------------------------------------------------------
    | Ejemplo Controller
    |--------------------------------------------------------------------------
    |
    | This controller renders the "marketing page" for the application and
    | is configured to only allow guests. Like most of the other sample
    | controllers, you are free to modify or remove it as you desire.
    |
    */

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct(Guard $auth)
    {
        $this->auth = $auth;
        $this->middleware('auth');
    }

    /**
     * Show the application welcome screen to the user.
     *
     * @return Response
     */
    public function index()
    {
    }
    public function accion(Request $request)
    {
        if ($request->isMethod('post')){
            $nombre = $request->input("nombre");
            var_dump($nombre);
        }
    }
}

Método post en Laravel

El formulario de envío en la Vista:

        {!! Form::open(array('url'=>'mi_ruta_post','method'=>'POST', 'id'=>'frmA')) !!}
        <meta name="_token" content="{!! csrf_token() !!}"/>
        <label for="txtNombre">Nombre:</label>
        <input type="text" id="txtNombre" value="" required />
        <a href="#" id="BtnEnviar">Aceptar</a>  
        {!! Form::close() !!}

Código JavaScript en la Vista:

El envío de los datos por POST lo haremos mediante AJAX con el fin de evitar la recarga de toda la página, aunque también se puede hacer de esta forma si así se desea, veamos:

Configurando Cabeceras:

 $(document).ready(function() {
    $.ajaxSetup({
            headers: {'X-CSRF-Token': $('meta[name=_token]').attr('content')}
        });
  });

Haciendo el Envío mediante AJAX:

  $("#BtnEnviar").click(function (e) {
      e.preventDefault();
      var nombre = $('#txtNombre').val();
      $.ajax({
        type: "post",
        url: "mi_ruta_post",
        data: {
            nombre: nombre
        }, success: function (msg) {
                alert("Se ha realizado el POST con exito "+msg);
        }
      });
  });

En el código anterior nos damos cuenta que hacemos uso de JQuery, por lo tanto no debemos olvidar hacer el enlace a esta librería en el encabezado de la vista.

¡Suscríbete a mi canal, para acceder a más contenidos gratuitos!

2 comentarios

Deja un comentario

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