отфильтровать товар по флажку в laravel - PullRequest
0 голосов
/ 27 января 2020

Я создаю веб-сайт с использованием Laravel framework. Я хочу использовать флажок для фильтрации продуктов по категориям для отображения

blade. php:

<ul>
@foreach($category as $val)
<li>
    <div class="custom-control custom-checkbox mb-3">
        <input type="checkbox" class="custom-control-input" id="cat_{{$val->id}}" name="cat[]" value="{{$val->title_en}}">
        <label class="custom-control-label" for="cat_{{$val->id}}">{{ $val->title_fa }}</label>
    </div>
</li>
 @endforeach

js:

var categories = [];

// Listen for 'change' event, so this triggers when the user clicks on the checkboxes labels
$('input[name="cat[]"]').on('change', function (e) {

    e.preventDefault();
    categories = []; // reset

    $('input[name="cat[]"]:checked').each(function()
    {
        categories.push($(this).val());
    });

    $.ajax({
        headers: {'X-CSRF-TOKEN': '{{ csrf_token() }}' },

        type:'POST',

        url: '/test',

        data:{categories,_token: $('meta[name="csrf-token"]').attr('content')
        },

        success:function(data){

            alert(categories);

        }

    });

route:

Route::post('/test', 'IndexController@serachCat');

IndexController:

public function searchCat()
{
    dd('search');
}

Используя эти коды, я получаю только имя предупреждения при выборе категории, но я хочу go на контроллере после выбора категории и фильтрации там продуктов, а затем их отображения

Какие изменения я должен внести в коды?

1 Ответ

0 голосов
/ 27 января 2020

Вам нужно будет вернуть json ответ для работы с данными после того, как ajax успешно сработал.

Route::post('/test/{option}', 'IndexController@serachCat');

.

public function searchCat($option)
{
    $cat=Model::where('option',$option)->get()
    return response()->json(['categoryData'=>$cat],200);
}

.

url: '/test/'+data,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...