【问题标题】:Search filter laravel problem with get values from搜索过滤器 laravel 问题,从获取值
【发布时间】:2018-09-15 17:18:19
【问题描述】:

我的控制器:

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

我的搜索组件在我包含的搜索视图中。

视图我称之为我的搜索视图:

@section('搜索') @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

还有我的路线:

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>

【问题讨论】:

  • 在控制器方法中使用dd(Input::get('category')); 来查看来自前端的内容
  • 显示您将过滤器发送到控制器的路由和刀片文件
  • 返回 null
  • 我的路线:Route::get('/filteredAds','MainController@FilteredAdsShow')->name('filteredAds');
  • 更新您的问题并在您应用搜索过滤器的位置添加路由和刀片文件

标签: php laravel


【解决方案1】:

问题在于您的锚标记。你的锚标记只是调用一个路由,但它没有向控制器发送任何值

要将选定的选项值发送到控制器,您必须使用 jquery。

  1. 获取标题值

HTML

输入标签有一些 id

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

jQuery

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

2。获取选定值

假设您的选择有 id 类别

<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.当你改变下拉菜单或者你想要的时候触发点击按钮

【讨论】:

  • 我选择的名称是'category'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-23
  • 1970-01-01
相关资源
最近更新 更多