php - DataTables 警告:table id=datatable - Ajax 错误。使用 laravel
问题描述
我正在使用 jquery ajax 数据表。我不知道为什么我的浏览器会出现这个错误。我认为我的代码没有错误。有人可以知道这是什么错误吗?我希望$details
数据显示在数据表中。
我得到的错误DataTables warning: table id=datatable - Ajax error. For more information about this error, please see http://datatables.net/tn/7
控制器
public function edit($id)
{
$item = User::where('id', $id)->first();
$details = \DB::table('finances')
->where('finances.user_id', $id)
->orderBy('finances.id' ,'DESC')
->get();
// dd($details);
return view('admin.pages.finances.show',[
'mnuname' => $this->page_title,
'page_title' => $this->page_title,
'item' => $item,
'details' => $details
]);
}
脚本
@section('javascript')
//<script src="{{ asset('js/app.js') }}" ></script>
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
//<script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.16/js/jquery.dataTables.js"></script>
<script>
console.log('asdasd');
$(document).ready( function () {
$('#datatable').DataTable({
"processing": false,
"serverSide": true,
"ajax": "/finances/{id}",
"type": "GET",
"columns": [
{ "data": "id" },
{ "data": "description" },
{ "data": "amount" },
{ "data": "date" }
]
});
});
</script>
@show
路线
Route::get('finances/{id}', 'FinancesController@edit')->name('admin.finances.edit');
当我dd($details)
Collection {#555 ▼
#items: array:3 [▼
0 => {#541 ▼
+"id": 5
+"school_id": 1
+"user_id": 11
+"amount": "20"
+"description": "Latest"
+"date": "2019-11-15"
+"created_at": null
+"updated_at": null
}
1 => {#558 ▼
+"id": 2
+"school_id": 1
+"user_id": 11
+"amount": "1000"
+"description": "New Payables"
+"date": "2019-11-14"
+"created_at": null
+"updated_at": null
}
2 => {#549 ▼
+"id": 1
+"school_id": 1
+"user_id": 11
+"amount": "5000"
+"description": "Old Payables"
+"date": "2019-11-13"
+"created_at": null
+"updated_at": null
}
]
解决方案
您应该返回 json 编码的数据。
public function ajaxDatatableEdit($id)
{
$item = User::where('id', $id)->first();
$details = \DB::table('finances')
->where('finances.user_id', $id)
->orderBy('finances.id' ,'DESC')
->get();
return json_encode($details);
}
还为您的 ajax 制作一个函数,为您的视图制作另一个函数。
public function viewEdit($id)
{
return view('admin.pages.finances.show',[
'mnuname' => $this->page_title,
'page_title' => $this->page_title,
'item' => $item,
]);
}
在您的路线上:
Route::get('finances/{id}', 'FinancesController@ajaxDatatableEdit')->name('admin.finances.edit');`
或者如果您正在使用表格,您可以使用 laravel 数据表
在此处阅读文档
推荐阅读
- flutter - flutter setState 不添加小部件
- c - 为什么要在变量中添加 0?
- python - 在pyqt5中连续接收串行端口数据时如何切换按钮
- ios - 如何从事件存储请求访问中获取事件信息
- apache - 用点重写地址 - “/”。在 htccess
- python - 如何使用 Python 中的内置字符串方法去除文本中的空格?
- wordpress - 密码的最小字符数,Wordpress
- java - 如何将 Hibernate 缓存与外部更改同步
- macos - 如何使用快速操作打印指定文本
- azure-marketplace - Azure Stack Hub 市场 - 自定义操作系统映像