作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在数据表上方有一个搜索表单。当我尝试搜索时,我得到的数据以 JSON 格式显示,而不是过滤数据表。错误是
Uncaught TypeError: oTable.draw is not a function
这是 JavaScript:
$(document).ready(function(){
var oTable = $('#surat').DataTable({
processing: true,
serverSide: true,
ajax: {
url: '{!! route("surat") !!}',
data: function (d) {
d.jenis_surat = $('input[name=jenis_surat]').val();
d.nomor_surat = $('input[name=nomor_surat]').val();
d.perihal = $('input[name=perihal]').val();
}
},
columns: [
{data: 'no', name: 'no'},
{data: 'jenis_surat', name: 'jenis_surat'},
{data: 'nomor_surat', name: 'nomor_surat'},
{data: 'perihal', name: 'perihal'},
{data: 'status', name: 'status'}
]
});
$('#search_form').on('submit', function(e) {
oTable.draw();
e.preventDefault();
});
});
这是 Controller :
public function carisuratdata(Request $request)
{
$surats = Surat::select(['id_surat', 'id_jenis_surat', 'nomor_surat','perihal', 'tanggal_surat', 'masa_berlaku_from', 'masa_berlaku_to', 'ringkasan', 'tag', 'id_publish', 'tanggal_publish'])->get();
return Datatables::of($surats)
->filter(function ($instance) use ($request) {
if ($request->has('jenis_surat')) {
$instance->collection = $instance->collection->filter(function ($row) use ($request) {
return Str::contains($row['jenis_surat'], $request->get('jenis_surat')) ? true : false;
});
}
if ($request->has('nomor_surat')) {
$instance->collection = $instance->collection->filter(function ($row) use ($request) {
return Str::contains($row['nomor_surat'], $request->get('nomor_surat')) ? true : false;
});
}
if ($request->has('perihal')) {
$instance->collection = $instance->collection->filter(function ($row) use ($request) {
return Str::contains($row['perihal'], $request->get('perihal')) ? true : false;
});
}
})
->make(true);
}
最佳答案
在使用draw
之前,需要调用一个操作,例如search
、order
等。并且draw
只是重绘表格,并不从服务器端更新数据。检查代码后,您的目的是从服务器端重新获取数据。因此,您需要使用oTable.ajax.reload();
从服务器重新获取数据。
了解更多信息:
Ajax 重新加载: https://datatables.net/reference/api/ajax.reload()
关于javascript - 如何解决过滤数据表时出现错误 "oTable.draw is not a function"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37107038/
我是一名优秀的程序员,十分优秀!