samedi 19 août 2017

Custom Filter Datatables using yajrabox package in laravel 5

excuse me, i have some problem when i wan't make custom filter in datatables. i wan't show my data based on the selected input. But my data has not changed as expected.

here my view code

<div class="panel-body">
    <div class="row">
        <div class="col-md-10">
            {!! Form::open(['method'=>'post','class'=>'form-horizontal','role'=>'form','id'=>'filter-form']) !!}
            <div class="form-group">
                {!! Form::label('filter', 'FIlter:', ['class'=>'col-md-1 control-label']) !!}
                <div class="col-md-3">
                {!! Form::select('filter', ['all'=>'Semua Waktu','bulanan'=>'Per Bulan Ini','tahunan'=>'Per Tahun Ini','tanggal'=>'Berdasarkan Tanggal'], 'all', ['id'=>'filter','class'=>'form-control','placeholder' => 'Pilih Waktu','onChange'=>'submitForm(this)']) !!}
                {!! $errors->first('filter', '<p class="help-block">:message</p>') !!}
                </div>
            </div>
            {!! Form::close() !!}
        </div>
    </div>
    {!! $html->table(['id'=>'datapeserta','class'=>'table-striped']) !!}
</div>

and this is my controller


public function index(Request $request, Builder $htmlBuilder)
{
    $getfilter = $request->get('filter');
    $getdari = $request->get('dari');
    $getsampai = $request->get('sampai');
    $getmonth = date('m');
    $getyear = date('Y');
    if($getfilter == 'all'){
        $datapeserta = Peserta::with('jeniskelas');
    }elseif($getfilter == 'bulanan'){
        $datapeserta = Peserta::with('jeniskelas')->whereYear('created_at','=',$getyear)->whereMonth('created_at','=',$getmonth)->get();
    }elseif($getfilter == 'tahunan'){
        $datapeserta = Peserta::with('jeniskelas')->whereYear('created_at','=',$getyear)->get();
    }elseif($getfilter == 'tanggal'){
        $datajeniskelamin = Peserta::with('jeniskelas')->whereBetween('created_at',array($getdari,$getsampai))->get();
    }else{
        $datapeserta = Peserta::with('jeniskelas');
    }

    if($request->ajax()){
        return Datatables::of($datapeserta)->addColumn('action', function($datapeserta){
            return view('dataTable._actiondatapeserta', [
                'model' => $datapeserta,
                'form_url' => route('datapeserta.destroy', $datapeserta->id),
                'edit_url' => route('datapeserta.edit', $datapeserta->id),
                ]);
        })->make(true);
    }
    $html = $htmlBuilder->addColumn(['data'=>'nis', 'name'=>'nis', 'title'=>'NIS'])
    ->addColumn(['data'=>'nama', 'name'=>'nama', 'title'=>'Nama'])
    ->addColumn(['data'=>'nohp', 'name'=>'nohp', 'title'=>'No. HP'])
    ->addColumn(['data'=>'jeniskelas.name', 'name'=>'jeniskelas.name', 'title'=>'Jenis Kelas'])

    return view('datapeserta.index')->with(compact('html','getyear'));
}

Anyone can help to solve this? thanks a lot :)



from Newest questions tagged laravel-5 - Stack Overflow http://ift.tt/2wkZfdl
via IFTTT

Aucun commentaire:

Enregistrer un commentaire