使用 JQUERY 和 AJAX 在 Laravel 分页中重新填充表数据

Posted

技术标签:

【中文标题】使用 JQUERY 和 AJAX 在 Laravel 分页中重新填充表数据【英文标题】:Repopulating table data in Laravel Pagination using JQUERY and AJAX 【发布时间】: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路由并在分页上添加点击功能解决了这个问题。 【参考方案1】:

我已经通过更改url路由并在分页上添加点击功能解决了这个问题。

【讨论】:

很高兴你解决了你的问题。 *** 的目标是成为 ppl 可以学习的资源 - 这个答案无助于实现该目标,这里没有未来观众可以使用的信息。您在 URL 中进行了哪些更改?点击什么?如果您想做出高质量的答案并回馈 SO 社区,请考虑编辑您的答案并提高质量。请花点时间阅读***.com/help/how-to-answer

以上是关于使用 JQUERY 和 AJAX 在 Laravel 分页中重新填充表数据的主要内容,如果未能解决你的问题,请参考以下文章

为啥提交ajax请求时请求随机为空?

在 Ajax 和 Jquery 中使用 Handlebars

AJAX 和 jQuery 与 MVC

使用 codeigniter 和 jquery 进行 AJAX 分页

Ajax 和 JavaScript,如何在不使用 JQuery 的情况下发布数组?

使用 jQuery、Ajax 和 JSON 提交单引号