如何使用laravel上的下拉列表来过滤表格

时间:2016-10-23 03:54:09

标签: javascript php laravel

我想使用laravel上的下拉列表来过滤我的表,它已经有效,但是当我想在创建表单中创建新记录时,创建表单只显示getid函数的数据,而不是创建表单视图。

这里是我的代码

<form method="GET">
    <div id="sample-table-3">
        <label>Display as Category</label>
        <select name="category_id" id="category_id">
            <option value="0">Show All</option>
            @foreach($categories as $category)
                <option value="{{ $category->id }}">{{ $category->category }}</option>
                    @endforeach
            </select>
    </div>
    </form>

这里是javascript

<script type="text/javascript">
    $(document).ready(function(){
        $('#category_id').on('change', function(e){
            var id_category = e.target.value;
            $.get('{{ url('news')}}/'+id_category, function(data){
                console.log(id_category);
                console.log(data);
                $('#news_data').empty();
                $.each(data, function(index, element){
                    $('#news_data').append("<tr><td>"+element.title+"</td><td>"+element.file+"</td>"+
                    "<td>"+element.content+"</td><td>"+element.like+"</td><td>"+element.view+"</td><td>"+find('.action')+"</td></tr>");
                });
            });
        });
    });
</script>

这是我的控制器

 public function index(Request $request)
{
    $news = News::paginate(10);
    $categories = Category::all();


    return view('news.news')
    ->with(compact('news'))
    ->with(compact('categories'));
}

public function create()
{
    $news = News::all();

    /* Get Category */
        $categories = Category::all();

    //dd($categories);
    return view('news.create')
    ->with(compact('news'))
    ->with(compact('categories'));
}

public function getid($id_category){
$categories = Category::all();

    if($id_category==0){
        $news = News::all();
    }else{
        $news = News::where('category_id','=',$id_category)->get();
    }
     return $news;
}

这是我的路线

Route::get('/news/{id_category}', 'NewsController@getid');

Route :: group([&#39; middleware&#39; =&gt;&#39; web&#39;],function(){

Route::resource('news', 'NewsController', ['except' => ['getid']]);
Route::resource('category', 'CategoryController');

});

1 个答案:

答案 0 :(得分:1)

您的路线

<?php
for ($p = 0; $p < $pagesNum; ++$p) {
  echo "<span onclick='search($p)'>$p</span>";
}
?>

可能与Route::get('/news/{id_category}', 'NewsController@getid'); 的{​​{1}}路线发生冲突。

将其更改为类似的内容

show