【发布时间】:2021-11-17 00:30:04
【问题描述】:
点击第2页或其他页面时如何重新填充表格数据?我正在努力解决如何使用来自 ajax 响应的 JSON 数据来做到这一点。请帮忙,谢谢!。这是我的代码
控制器
function associate(Request $request)
{
$associate = User::join('associate', 'associate.associate_id', '=', 'users.id')
->orderBy('last_name', 'ASC')
->paginate(5);
if ($request->ajax()) {
return response()->json($associate);
}
return view('dashboards.admin.manageassociate', [
'associate' => $associate
]);
}
刀片视图
$(document).ready(function() {
fetchassociate();
function fetchassociate() {
$.ajax({
type: "GET",
url: "{{route('admin.associate')}}",
dataType: "json",
success: function(response) {
console.log(response.data);
$('tbody').html("");
$('#tablefoot').html("");
$.each(response.data, function(key, associates) {
$('tbody').append('<tr>\
<td>' + associates.associate_id + '</td>\
<td>' + associates.last_name + ', ' + associates.first_name + ' ' + associates.middle_name + '</td>\
<td>' + associates.username + '</td>\
<td>' + associates.email + '</td>\
<td>' + associates.phone + '</td>\
<td>' + associates.gender + '</td>\
<td><button type = "button" value = "' + associates.associate_id + '" class = "edit_associate btn btn-primary btn-sm">Edit</button>\
<button type = "button" value = "' + associates.associate_id + '" class = "delete_associate btn btn-danger btn-sm">Delete</button></td>\
</tr>');
});
$.each(response.links, function(key, link) {
$('#tablefoot').append( '<li class="page-item"><a class="page-link" href="'+link.url+'">'+link.label+'</a></li>');
});
}
});
}
}
路线
Route::get('manage_associates', [ManageController::class, 'associate'])->name('admin.associate');
【问题讨论】:
-
datatable最简单的实现是这样的:medium.com/justlaravel/…
-
如果你想做服务端处理,请查看这个链接:datatables.net/examples/data_sources/server_side
-
但是,我建议使用 yajra/datatable,因为已经为您完成了最详细的工作:github.com/yajra/laravel-datatables
-
感谢您的cmets,我已经通过更改url路由并在分页上添加点击功能解决了这个问题。
标签: javascript jquery ajax laravel laravel-8