Besoin d'aide ?

filtrer un tableau en laravel avec select dropdown ajax

  • Avatar de SanaFerchichi
    Membre depuis :
    08/03/2019
    Messages :
    1

    bonsoir tout le monde
    je suis débutante en laravel je veux donner une note pour chacun eleve dans une école donc j'ai réfléchi de faire ça avec Ajax, il faut donc de faire un select et lorsque je sélectionne une classe il va afficher les élèves dans cette classe et les matières enseignées pour cette classe mais je ne suis pas arrivé à faire il ne m'affiche rien
    comment je peux la faire

    @extends('layouts.admin')

    @section('content')

    <section class="wrapper">
    <div class="table-title">
    <div class="row">
    <div class="col-sm-6">
    h2>Gérér <b></b>notes</h2>
    </div>
    <div class="col-sm-6">

    <a href="#addEmployeeModal"class=" btn btn-success" data-toggle="modal"><i class="material icons">&#xE147;</i> <span>Ajouter un nouveau note</span></a>

    </div>

    <div class="col-sm-3">

    <div class="form-group">
    <div class="controls">
    <select name="matiere_id" class="form-control filter-select" required>
    <option value="">--selectionner la matiere svp --</option>
    @foreach($matieres as $matiere)
    <option value="{{ $matiere->id }}">{{ $matiere->nom_matiere }} </option>
    @endforeach
    </select>
    </div>
    </div>

    <div class="controls">
    <select data-column="0" name="classe_id" id="classe_id" class="form-control" required>
    <option value="">--selectionner le classe avant svp --</option>
    @foreach($classes as $classe)
    <option value="{{ $classe->id }}">{{ $classe->classe }} </option>
    @endforeach
    </select>

    </div>
    <button type="text" id="btnFiterSubmitSearch" class="btn btn-info">Submit</button>
    </div>

    <div class="row mt">
    @if(session()->has('success'))
    <div class="alert alert-success">
    {{session()->get('success')}}
    </div>
    @endif
    <div class="col-lg-12">
    <div class="content-panel">

    <section id="no-more-tables">
    <table class="table table-bordered table-striped table-condensed cf">
    <thead class="cf">
    <tr>
    <th>nom eleve </th>
    <th>prenom</th>
    <th>nom classe</th>
    <th>la note </th>
    <th>la matiere </th>

    </tr>
    </thead>
    <tbody>

    @foreach($eleves as $eleve)
    <tr>

    <td class="numeric" data-title="id-note" >{{$eleve->nom}}</td>
    <td class="numeric" data-title="Nom">{{$eleve->prenom}}</td>
    <td class="numeric" data-title="Nom">{{$eleve->classe->classe}}</td>

    <td class="numeric" data-title="Nom">

    <input type="text" value ="mettez la note ">

    </td>
    <td class="numeric" data-title="Nom">
    @foreach($eleve->matieres as $matiere)
    {{$matiere->nom_matiere}}
    @endforeach
    </td>
    </tr>
    </tbody>
    @endforeach

    ``</table>
    <div class="text-center">

    </div>

    // voila le code ajax dans la vue >
    <script>
    $(document).ready( function () {
    $.ajaxSetup({
    headers: {
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
    });

    $('#classe_id').on("change",function(e){
    console.log("#DEBUG ")
    loadClass($(this).children("option:selected").val());
    console.log("#DEBUG END")
    });

    function loadClass(class_id){
    url = 'http://localhost/ecole/public/admin/class_students/'+class_id;
    $.ajax({
    url:url,
    method:"GET"
    }).done(function(response){
    console.log(response);
    });
    }

    $('#laravel_datatable').DataTable({
    processing: true,
    serverSide: true,
    ajax: {
    url: "{{ url('users-list') }}",
    type: 'GET',
    data: function (d) {
    d.classe_id = $('#classe_id').val();

    d.mat
    iere_id = $('#matiere_id').val();

    }
    },
    columns: [
    { data: 'id', name: 'id' },
    { data: 'nom', name: 'nom' },

    ]
    });
    });

    $('#btnFiterSubmitSearch').click(function(){
    $'#laravel_datatable').DataTable().draw(true);
    });

    </script>

    @endsection

    // la fonction dans mon controlleur note//

    public function usersList()

    {

    $usersQuery = Classes::query();

    $classe = (!empty($_GET["classe"])) ;

    $classes = $usersQuery->select('');
    return datatables()->of($classes)
    ->make(true);

    $studentsQuery = Eleves::query();

    $classe_id = (!empty($_GET["classe_id"])) ? ($_GET["classe_id"]) : ('');
    $matiere_id= (!empty($_GET["matiere_id"])) ? ($_GET["matiere_id"]) : ('');

    if($classe_id){

    $usersQuery->whereRaw("eleves.classe_id = '" . $classe_id );
    }

    if($matiere_id){

    $usersQuery->whereRaw("eleves.matiere_id = '" . $matiere_id );
    }

    $eleves = $studentsQuery->select('
    ');
    return datatables()->of($users)
    ->make(true);

    }

    // fonction dans le controlleur classe//

    public function students(Request $request, $class_id){
    $class= Classe::with("eleve")->where("id",$class_id)->get();
    return response()->json($class);
    }


    //route//

    Route::resource('userslist','NotelController');
    Route::get('class_students/{class_id}','ClasseController@students');

Vous ne pouvez pas répondre à ce sujet.