Php 通过下拉列表筛选数据表
在我的Laravel应用程序中,我使用Datatables来实现简单的筛选等功能。我已经设法开发了一个输入字段来搜索生成的表。为了避免键入错误,我希望使用下拉列表中选定选项项的值。我一直在尝试一些事情,但我做不好 视图:Php 通过下拉列表筛选数据表,php,jquery,laravel,datatables,Php,Jquery,Laravel,Datatables,在我的Laravel应用程序中,我使用Datatables来实现简单的筛选等功能。我已经设法开发了一个输入字段来搜索生成的表。为了避免键入错误,我希望使用下拉列表中选定选项项的值。我一直在尝试一些事情,但我做不好 视图: <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title">Custom Filter</h3>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Custom Filter</h3>
</div>
<div class="panel-body">
<form method="POST" id="search-form" class="form-inline" role="form">
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" name="name" id="name" placeholder="search name">
</div>
<div class="form-group">
<label for="category">Category</label>
<select name="category" id="category" class="custom-select">
<option value="reset">-Categorie-</option>
@foreach($adviceCategories as $category => $name)
<option value={{ $category }}>{{ $name }}</option>
@endforeach
</select>
</div>
<button type="submit" class="btn btn-primary">Search</button>
</form>
</div>
</div>
还有我的剧本:
<script type="text/javascript">
$(document).ready(function() {
oTable = $('#advicePreparations-table').DataTable({
"processing": true,
"serverSide": true,
"ajax": {
url: "{{ route('advice_protocols.data') }}",
data: function (d){
d.name = $('input[name=name]').val();
d.category = $('option[name=category]').text();
}
},
"columns": [
{data: 'name', name: 'name'},
{data: 'category', name: 'category'},
{data: 'question_name', name: 'goal'},
{data: 'mergeColumn', name: 'mergeColumn'},
{data: 'autheur', name: 'autheur'},
{data: 'active', name: 'active'},
{data: 'acties', name: 'acties', orderable: false, searchable: false},
{data: 'delete', name:'delete', orderable: false, searchable: false}
]
});
$('#search-form').on('submit', function(e) {
oTable.draw();
e.preventDefault();
});
});
</script>
我曾尝试将输入类型从下拉列表更改为输入字段,以检查查询是否错误,但这是可行的!我已尝试将脚本行更改为:d.category=$'select[name=category]'.val;。。但这会在加载页面时执行查询!这将禁用所有类别的概览。。有人能帮我把所选的值输入到查询中吗 你能试试这个代码行吗
$('select[name="category"]').on("change", function(event){
var category = $('select[name="category"]').val();
console.log(category);
oTable.fnFilter("^"+ $(this).val() +"$", 2, false, false)
});
您可以添加一个JSFIDLE吗?我认为可以使用oTable.fnFilter^+filtervalue+$,columnindex,false,false;我希望你能做点什么。这很难,因为ajax请求仅在本地可用。
$('select[name="category"]').on("change", function(event){
var category = $('select[name="category"]').val();
console.log(category);
oTable.fnFilter("^"+ $(this).val() +"$", 2, false, false)
});