Проблема с фильтром поискового фильтра с получением значений из - PullRequest
0 голосов
/ 15 сентября 2018

Мой контроллер:

public function FilteredAdsShow(){

    $id= Input::get('category'); //get id from select name="categories"
    $tit = Input::get('titleFilter'); // get title from input text
    $categories = Category::all();

    $ads = Ad::where('category_id','=',$id)
        ->where('active','=',1)
        ->where('title','=',$tit)
        ->orderby('promoted','1')
        ->orderby('created_at','desc')
        ->with('images')
        ->get();

    return view('filtered')
        ->with(compact('ads'))
        ->with(compact('categories'));

}

У меня есть кнопка на моем виде, которая вызывает маршрут при нажатии. Я также делаю foreach, чтобы получить все значения, которые имеют этот заголовок и где category_id = $ id, но он не работает.

Просмотр:

@extends('layouts.app')

@section('search')
    @include('pieces.search')
@endsection

    @foreach($ads as $ad)
        <div class="col-3 adSection">
            <img src="{{$ad->images->first()->path}}" alt="Imagem do anuncio" class="adImages"/>
            <p>{{$ad->title}}</p>
            <p>{{$ad->price}}</p>
        </div>
    @endforeach

Мои компоненты поиска находятся в моем поиске, включая меня.

Просмотр Я называю мой поиск:

@ раздел ( 'Поиск') @include ('parts.search') @ endsection

@foreach($ads as $ad)
    <div class="col-3 adSection">
        <img src="{{$ad->images->first()->path}}" alt="Imagem do anuncio" class="adImages"/>
        <p>{{$ad->title}}</p>
        <p>{{$ad->price}}</p>
    </div>
@endforeach

И мой маршрут:

Route::get('/filteredAds','MainController@FilteredAdsShow')->name('filteredAds');

Мой поиск:

<div class="col-6">
    <div class="form-group">
        <input type="text" name="titleFilter" placeholder="Pesquise pelo título" class="form-control">
    </div>
</div>
<div class="col-4">
    <div class="form-group">
        <select class="form-control" name="category">
            <option value="-1">Todos</option>
            @foreach($categories as $category )
                <option value="{{$category->id}}">{{$category->name}}</option>
            @endforeach
        </select>
    </div>

</div>
<div class="col-2">
    <div class="form-group">
        <a href="{{route('filteredAds')}}" class="btn btn-primary form-control">Pesquisar</a>
    </div>
</div>

1 Ответ

0 голосов
/ 15 сентября 2018

Проблема в вашем теге привязки .Ваш тег привязки просто вызывает маршрут, но он не отправляет значение контроллеру

Чтобы отправить значение выбранного параметра контроллеру, вы должны будете использовать jquery.

  1. получить значение заголовка

HTML :

Входной тег, имеющий некоторый идентификатор

    <input type="text" id="titleFilter" name="titleFilter" placeholder="Pesquise pelo título" class="form-control">

Jquery

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

2.получить выбранное значение

предположим, что ваш выбор имеет идентификаторы категории

<select class="form-control" name="category" id='categories'> ...</select>

$('#categories').on('change',function(){
   //get selected category
   var selectedOption = $('#categories:selected').val()  
   //trigger click here to your route
});

3.trigger нажмите на кнопку, когда вы измените раскрывающийся список или, если хотите,

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