【发布时间】:2017-07-29 18:49:24
【问题描述】:
我一直在尝试按照this 示例为我的 laravel 数据库创建一个下拉过滤器。但是,即使 url 查询正确更改,我的代码也始终从下拉列表中返回默认值,例如 homestead.app/?search_group_filter=variables,但我的代码始终返回 url 的默认值。
php 控制器
public function globalFilter(Request $request)
{
$tags = Unknown_Tag::groupBy('url');
$datatables = Datatables::of($tags);
debugbar::warning($request->get('searchGroup'));//both return url
debugbar::warning($request->searchGroup);
if ($name = $request->get('searchGroup')) {
$datatables->where($request->searchGroup, 'like', 'http://b.scorecardresearch.com/p?c1=9');
}
return $datatables->make(true);
}
javascript
<script>
$(function() {
var table = $('#ut-table');
table.dataTable({
processing: true,
serverSide: true,
ajax: {
url: 'http://homestead.app/globalFilter',
data: function (d) {
d.searchGroup = $('select[name=search_group_filter]').val();
}
},
columns: [
{ data: 'protocol'},
{ data: 'domain'},
...
]
});
$('#search_group_filter').on('submit', function(e) {
table.draw();
e.preventDefault();
});
});
HTML
<table border="0" cellspacing="5" cellpadding="5">
<tbody>
Search
<tr>
<form>
<select name='search_group_filter', id='search_group_filter'>
<option value='url'>Full URL</option>
<option value='protocol'>Protocol</option>
<option value='domain'>Domain</option>
<option value='path'>Path</option>
<option value='query'>Full Query</option>
<option value='variables'>Variables</option>
<option value='values'>Values</option>
<option value='occurrences'>Occurences</option>
</select>
<button type="submit">search</button>
</form>
</tr>
</tbody>
</table>
编辑:
将我的路线从Route::get('/globalFilter', 'DatatablesController@globalFilter'); 更改为Route::get('/globalFilter/{searchGroup}', 'DatatablesController@globalFilter');,并将我的AJAX 调用更改为http://homestead.app/globalFilter/groupSearch,将组搜索替换为实际值,给了我完全相同的东西。如果我手动更改路线,也不会发生任何变化
【问题讨论】:
标签: jquery ajax laravel datatables