Обновление представления без перезагрузки в laravel mvc

Я использую Laravel 5.4 в своем проекте, и я делаю простую панель с несколькими диаграммами, которые отображают информацию из базы данных mySql.

Я поместил некоторые выпадающие списки в качестве фильтров, чтобы пользователь мог фильтровать панель управления по своему усмотрению. Я поместил выпадающие списки в форму и заполнил их из моего контроллера без ajax, просто используя метод get и bootstrap-select.

Это мой код, как выглядит:

       <form id="filter"  method="GET">

{{ csrf_field() }}

<select class="selectpicker "  name="siteF" id="siteF" data-width="100px" data-actions-box="true" data-style="btn-warning" title="Site">
<option>All</option>
@foreach($SiteFilter as $site)
<option>{{ $site->site_name }}</option>
@endforeach
</select>

<select class="selectpicker "  name="yearF" id="yearF" data-size="5" data-width="100px" data-actions-box="true" data-style="btn-warning" title="Year">
<option>All</option>
@foreach($YearFilter as $year)
<option>{{ $year->year }}</option>
@endforeach

</select>

<select class="selectpicker "  name="operatorF" id="operatorF" data-size="5" data-width="100px" data-actions-box="true" data-style="btn-warning" title="Operator">
<option>All</option>
@foreach($OperatorFilter as $operator)
<option>{{ $operator->operator }}</option>
@endforeach
</select>

<select class="selectpicker "  name="parkingF" id="parkingF" data-width="100px" data-actions-box="true" data-style="btn-warning" title="Parking">
<option>All</option>
@foreach($ParkingFilter as $parking)
<option>{{ $parking->parking }}</option>
@endforeach
</select>



<button type="submit"  class="btn bg-deep-orange waves-effect">
<i class="material-icons">search</i>

</button>
</form>

Это та часть в контроллере, где я заполняю списки:

    //----------------------------------- 1/ filter of sites-----------------------------------

$SiteFilter=  DB::table('transactions')
->select('site_name')
->distinct()
->get();

//-----------------------------------end of filter of sites-----------------------------------

//----------------------------------- 2/ filter of years-----------------------------------

$YearFilter=  DB::table('transactions')
->select(DB::raw("YEAR(transaction_created_at) as year"))
->distinct()
->get();

//-----------------------------------end of filter of years-----------------------------------

//----------------------------------- 3/ filter of operators-----------------------------------

$OperatorFilter=  DB::table('transactions')
->select('operator_id as operator')
->distinct()
->get();

//-----------------------------------end of filter of operators-----------------------------------

//----------------------------------- 4/ filter of parkings-----------------------------------

$ParkingFilter=  DB::table('transactions')
->select('parking')
->distinct()
->get();

//-----------------------------------end of filter of parkings-----------------------------------

и это пример диаграммы:

      //-----------------------------------Donutchart: number of transactions per operator-----------------------------------
$donutData=  DB::table('transactions')
->select('operator_id as operator',DB::raw('count(id) as num'))
->where(function ($query) {

if((Input::get('operatorF') != "")&&(Input::get('operatorF') != "All"))
$query->where('operator_id','=',Input::get('operatorF') );

if((Input::get('parkingF') != "")&&(Input::get('parkingF') != "All"))
$query->where('parking','=',Input::get('parkingF') );

if((Input::get('yearF') != "")&&(Input::get('yearF') != "All"))
$query->where('transaction_created_at', '>=',(string)Input::get('yearF'));

if((Input::get('siteF') != "")&&(Input::get('siteF') != "All"))
$query->where('site_name','=',Input::get('siteF') );

})
->groupby('operator')
->orderby('operator')
->get();

$donut_data='[';
foreach($donutData as $rec)
{
$donut_data=$donut_data.'{"label":'.$rec->operator.',"value":'.$rec->num.'},';

}
$x=strlen($donut_data);
$donut_data[$x-1]=']';
//-----------------------------------end of Donutchart: number of transactions per operator-----------------------------------

Ответ, возвращенный с этим кодом, отправляется в javascript для создания кольцевой диаграммы.

Таким образом, моя задача — это то, что я должен сделать, чтобы использовать фильтры, не обновляя мою страницу панели мониторинга на самом деле в состоянии смородины, когда страница перезагружается, я теряю выпадающие фильтры последний выбор, поэтому я не могу сказать, какой фильтр и какое значение он использовал. И я не знал, как реализовать Ajax в моем проекте. Любая помощь?

Заранее спасибо..

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …