Laravel France

Form Post laravel ajax jquery

  • Avatar de YannickJohansson
    Membre depuis :
    21/12/2017
    Messages :
    3

    Bonsoir;

    J'ai un vue qui contient un input libélle et je voudrais insérer les données avec ajax et jquery dans la base de données :
    Mais l'insertion vers la base de données ça marche pas.
    Une idée SVP.

    BaseDocumentController

    class BaseDocumentController extends Controller
    {
    public function insert_doc(Request $request){
    $document = new Doc();
    $document->libelle = $request->libelle;
    $document->save();
    }
    }

    base_document.blade.php:

    <div class="panel-body">
    <button type="button" class="btn btn-default btn-xs" data-toggle="modal" data-target="#myModal" ><i class="fa fa-plus"></i></button>

    <div id="myModal" class="modal fade" role="dialog">
    <div class="modal-dialog">

    <div class="modal-content">
    <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal">&times;</button>
    <h4 class="modal-title">Ajouter document</h4>
    </div>
    <div class="modal-body">
    <div class="form-group">
    <input type="text" name="libelle" id="libelle" class="form-control" placeholder="Libélle" width="50%" />
    </div>
    <button type="submit" id="sub_btn" class="btn btn-outline green">Ajouter</button>

    </div>
    <div class="modal-footer">
    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
    </div>
    </div>

    </div>
    </div>

    ajax.js :

    $(document).ready(function(){
    $(document).on('click', "#sub_btn", function() {

    var libelle = $('#libelle').val();

    $.ajax({
    url: "{{action('BaseDocumentController@insert_doc')}}",
    method: 'POST',
    data: {
    libelle: libelle
    },
    success: function(data) {
    toastr.success('', 'good !');
    }
    });
    });
    });

    routes.php :

    Route::post('/base_document', 'BaseDocumentController@insert_doc');

  • Avatar de CoxinetMaroc
    Membre depuis :
    12/07/2017
    Messages :
    7

    Je vois que sur le fichier JS vous avez mis : {{action('BaseDocumentController@insert_doc')}} comme action
    ajax.js est un fichier séparé, donc blade ne le parse pas; il faut mettre /base_document.
    normalrment il faut que la requette ajax vous retourne err404

Vous ne pouvez pas répondre à ce sujet.