-1

I have a code of Ajax, it works with the type="get" but I want to change the type to "post"

$.ajax({
    url:   '/crear',
    type:  'post',
    cache: 'false',
    contentType: 'false',
    processData: 'false',
    data:  {'nombre':Vnombre,'codigo':Vcodigo,'descripcion':Vdescripcion,'arrayCategorias':arrayCategoriasAux,'arrayColores':arrayColoresAux,'arrayTallas':arrayTallasAux}
}).done(function(data){

    window.location.replace("/almacen/producto");
});

I changed my route in web.php

Route::post('/crear', 'ProductoController@store');

But It didn't work, I have the error 419 (unknown status) in my Browser

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="csrf-token" content="{{ csrf_token() }}">

<script src="{{asset('js/jquery-3.2.1.js')}}"></script>
<script type="text/javascript">
$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});
My Controller:

    public function store(ProductoFormRequest $request)
    {
        if ($request->ajax()) {

            if (!(empty($request->nombre)) && !(empty($request->codigo)) && !(empty($request->descripcion))) {

                # code...
                $producto              = new Producto;
                $producto->codigo      = $request->codigo;
                $producto->nombre      = $request->nombre;
                $producto->descripcion = $request->descripcion;
                $producto->stock       = '0';
                 $producto->estado = '1';
                $producto->save();
            }
        }
    }
My Request

<?php

namespace sistema\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class ProductoFormRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'codigo'      => 'required|max:45',
            'nombre'      => 'required|max:45',
            'descripcion' => 'max:45',
            'stock'       => 'max:11',
        ];
    }
}

Only i want to send Files [] and others arrays [] to my controller, if anyone has a better idea please help me

My Form

<form onsubmit="FuncionGuardar();"  method="Post" enctype="multipart/form-data" class="form-horizontal" id="add_user_form">
{{csrf_field()}}
<div class="row">
 <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
  <label for="codigo"> Nombre</label>

  <input class="form-control" required value="{{old('nombre')}}" type="text" id="inNombre" name="nombre" placeholder="Nombre">
 </div>
 <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
  <label for="codigo"> Codigo</label>
  <input class="form-control" required value="{{old('codigo')}}" type="text" id="inCodigo" name="codigo" placeholder="Codigo">
 </div>
</div>
<div class="row">
 <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
  <label for="codigo"> Descripcion</label>
  <input class="form-control" required value="{{old('descripcion')}}" type="text" id="inDescripcion" name="descripcion" placeholder="Descripcion">
 </div>
</div>
<div class="row">
 <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
 <div class="form-group">
  <label>Categorias</label>
    <div class="input-group">
    <select id="CategoriasSelect" name="idt_categoria" class="form-control" >
     @foreach($categorias as $cat)
               <option value="{{$cat->idt_categoria}}">{{$cat->nombre}}</option>
     @endforeach
    </select>
    <span class="input-group-btn">
           <a class="btn btn-primary " href="#" role="button" onclick="CrearBotonCategorias()">Añadir</a>
         </span>
   </div>
  <small class="text-muted" >*Clic en la Categoria para eliminarla</small>
  <br>
   <div class="alert alert-info" role="alert">
    <div class="btn-toolbar" role="toolbar" aria-label="Toolbar with button groups">
     <div class="btn-group mr-2" role="group" aria-label="First group" id="DivCategorias">
        <!-- Botones de categorias agregados -->
       </div>
    </div>

   </div>



 </div>
 </div>
 <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
 <div class="form-group">
  <label>Colores</label>
    <div class="input-group">
    <select id="ColoresSelect" name="idt_color" class="form-control" >
     @foreach($colores as $coloKey)
               <option   value="{{$coloKey->idt_color}}" style="background-color:{{$coloKey->color}};">
                {{$coloKey->nombre}}
               </option>
     @endforeach
    </select>
    <span class="input-group-btn">
           <a class="btn btn-primary " href="#" role="button" onclick="CrearBotonColores()">Añadir</a>
         </span>
   </div>
  <small class="text-muted" >*Clic en el Color para eliminarlo</small>
  <br>
   <div class="alert " role="alert">
    <div class="btn-toolbar" role="toolbar" aria-label="Toolbar with button groups">
       <div class="btn-group mr-2" role="group" aria-label="First group" id="DivColores">
        <!-- Botones de categorias agregados -->
       </div>
    </div>
   </div>


 </div>
 </div>
</div>
<div class="row">
  <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
 <div class="form-group">
  <label>Tallas</label>
    <div class="input-group">
    <select id="TallasSelect" name="idt_categoria" class="form-control" >
     @foreach($tallas as $tallaKey)
               <option value="{{$tallaKey->idt_talla}}">{{$tallaKey->nombre}}</option>
     @endforeach
    </select>
    <span class="input-group-btn">
           <a class="btn btn-primary " href="#" role="button" onclick="CrearBotonTallas()">Añadir</a>
         </span>
   </div>
   <small class="text-muted" >*Clic en la Talla para eliminarla</small>
  <br>
   <div class="alert alert-warning" role="alert">
    <div class="btn-toolbar" role="toolbar" aria-label="Toolbar with button groups">
       <div class="btn-group mr-2" role="group" aria-label="First group" id="DivTallas">
        <!-- Botones de tallas agregados -->
       </div>
    </div>
   </div>


 </div>
 </div>
  <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
 <div class="form-group">
  <label>Imagenes</label>
    <div class="input-group">
     <input type="file" id="Imagenes" class="filestyle" name="files[]" accept=".jpg, .jpeg, .png" data-btnClass="btn-primary" multiple>

    <output id="list"></output>
   </div>
  <br>
   <div class="alert alert-success" role="alert">
    <div class="btn-toolbar" role="toolbar" aria-label="Toolbar with button groups">
       <div class="btn-group mr-2" role="group" aria-label="First group" id="DivImagenes">
        <!-- Botones de categorias agregados -->
       </div>
    </div>
   </div>


 </div>
 </div>
</div>

<div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
<div>
  <div class="form-group">
   <input type="submit" class="btn btn-primary" value="Submit">
   <a class="btn btn-danger" href="javascript:window.history.back();" role="button">Cancelar</a>
  </div>

 </div>
</div>
</form>
Diego Zerkk
  • 7
  • 1
  • 1
  • 6

1 Answers1

4

Sample ajax request

$('#submit-signup').on("click", function (e) {

            e.preventDefault();
            var formDataValues = document.forms.namedItem("signup-form");
            var formValues = new FormData(formDataValues);


            $.ajax({
                type: 'POST',
                url: siteUrl + '/signup',
                processData: false,
                contentType: false,
                dataType: 'json',
                headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
                data: formValues,

                success: function (data) {



                },
                error: function (data) {

                }
            });
        });

Updated 419 error becasue of you have not added token in your form add this line inside form

  {{csrf_field()}}

Update 2 to add form token very simple

 <form action="{{url('add-user')}}"  method="Post" enctype="multipart/form-data" class="form-horizontal" id="add_user_form">
            {{csrf_field()}}
            <div class="form-body">
                <h3 class="form-section">Person Info</h3>
                <div class="row">
                    <div class="col-md-6">
                        <div class="form-group">
                            <label class="control-label col-md-3">First Name</label>
                            <div class="col-md-9">
                                <input type="text" name="first_name" id="first_name" class="form-control first_name"  placeholder="First Name">

                            </div>
                        </div>

        </form>
Vision Coderz
  • 8,257
  • 5
  • 41
  • 57