Tenho uma tabela que quero que filtre pela categoria do produto via ajax sem reload. OBS: Estou usando JqueryDatatables. Routes
Route::get('/produtos/ajaxprod', [
'uses'=>'ProdutoController@ajaxprod',
'item_categoria'=>Input::get('item_categoria')
]);
View
@extends('layout.principal')
@section('conteudo')
<script type="text/javascript">
function ajaxprod(){
$.ajax({
'processing': true,
'serverSide': false,
type: "GET",
data: {item_categoria: $("#item_categoria").val()},
url: "/produtos/ajaxprod",
success: function(s) {
var s = $(s);
var table = $('#tableitem').DataTable();
table.clear();
for(var i = 0; i < s.length; i++) {
table.row.add([
s[i]['id'],
s[i]['nome'],
s[i]['quantidade'],
s[i]['valor'],
s[i]['tamanho'],
s[i]['descricao'],
s[i]['categoria_id'],
]);
}
table.draw();
}
});
}
</script>
<div>
<h2 class="text-center">Listagem de produtos</h2>
<hr/>
@if(old('nome'))
<div class="alert alert-success">
<strong>Sucesso!</strong>
O produto {{ old('nome') }} foi adicionado.
</div>
@endif
</div>
<div>
<a href="{{url('/produtos/novo')}}" class="btn btn-primary"><span class="glyphicon glyphicon-plus"></span> Cadastrar</a>
<a href="{{url('/produtos/deletartudo')}}" class="btn btn-danger"><span class="glyphicon glyphicon-trash"></span> Deletar Tudo</a>
<a href="{{url('/produtos/imprimir')}}" class="btn btn-primary"><span class="glyphicon glyphicon-print"></span> Gerar PDF</a>
<a href="{{url('/produtos/exportar')}}" class="btn btn-primary"><span class="glyphicon glyphicon-print"></span> Gerar Planiha</a>
<a href="{{url('/produtos/importar')}}" class="btn btn-success"><span class="glyphicon glyphicon-file"></span> Importar Planilha</a>
<br><br>
</div>
<form>
<label>Categoria do Produto</label>
<select id="item_categoria" onchange="ajaxprod()" name="categoria_id" data-placeholder="Selecione...." class="chosen" class="form-control">
@foreach($categorias as $c)
<option></option>
<option value="{{$c->id}}">{{$c->nome}}</option>
@endforeach
</select>
<form>
<br><br>
<div class="table-responsive">
<table id="tableitem" class="table table-striped table-bordered table-hover" style="font-size:12px;">
<thead>
<tr>
<th>ID</th>
<th>Nome</th>
<th>Quantidade</th>
<th>Valor</th>
<th>Tamanho</th>
<th>Descrição</th>
<th>Categoria</th>
<th>Visualizar</th>
<th>Editar</th>
<th>Deletar</th>
</tr>
</thead>
<tbody>
@foreach($produtos as $p)
<tr class="{{$p->quantidade <=1 ?'danger': ''}} text-center">
<td>{{ $p->id }}</td>
<td>{{ $p->nome }}</td>
<td>{{ $p->quantidade }}</td>
<td>{{ $p->valor }}</td>
<td>{{ $p->tamanho }}</td>
<td>{{ $p->descricao }}</td>
<td>{{ $p->categoria->nome }}</td>
<td>
<a href="/produtos/mostra/{{$p->id}}">
<span class="glyphicon glyphicon-search"></span>
</a>
</td>
<td>
<a href="/produtos/editar/{{$p->id}}">
<span class="glyphicon glyphicon-pencil"></span>
</a>
</td>
<td>
<a href="/produtos/remove/{{$p->id}}">
<span class="glyphicon glyphicon-trash"></span>
</a>
</td>
</tr>
@endforeach
</tbody>
</table>
<h4>
<span class="label label-danger pull-right">
Um ou menos itens no estoque
</span>
</h4>
</div>
@stop
Controller
public function ajaxprod(){
$item_categoria = Request::input('item_categoria');
$produtos = Produto::where('categoria_id',"=",$item_categoria)->get();
$categorias = Categoria::orderBy('id')->get();
return json_encode($produtos);
}