You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel结合jQuery与AJAX实现分页点击下一页仅展示JSON问题求助

问题根因
  • 生成的分页链接为指向/fetch-associate接口的普通超链接,点击后触发浏览器默认跳转行为,直接加载接口返回的JSON数据,未走AJAX局部刷新逻辑
  • 原有脚本渲染分页前未清空旧分页内容,会导致分页条重复堆叠
  • 原有jQuery代码存在语法疏漏,$(document).ready 缺少闭合标识,可能导致脚本执行异常
修复方案

1. 替换Blade视图中的脚本代码

$(document).ready(function() {
    // 首次加载第一页数据
    fetchassociate();

    // 封装数据请求方法,支持传入分页页码
    function fetchassociate(page = 1) {
        $.ajax({
            type: "GET",
            url: "/fetch-associate",
            data: {page: page},
            dataType: "json",
            success: function(response) {
                // 清空旧数据
                $('tbody').html("");
                // 渲染列表数据
                $.each(response.associate.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>');
                });
                // 清空旧分页条
                $('#tablefoot').html("");
                // 渲染新分页条,给分页链接加专属class方便绑定事件
                $.each(response.associate.links, function(key, link) {
                    let disabled = link.active ? 'active' : '';
                    $('#tablefoot').append( '<ul class="pagination pagination-sm m-0 float-left">\
                        <li class="page-item ' + disabled + '"><a class="page-link pagination-link" href="'+link.url+'">'+link.label+'</a></li>\
                    </ul>');
                });
            }
        });
    }

    // 绑定分页链接点击事件,阻止默认跳转
    $(document).on('click', '.pagination-link', function(e) {
        e.preventDefault();
        // 从链接地址中提取page参数
        let page = new URL($(this).attr('href')).searchParams.get('page');
        if(page) {
            fetchassociate(page);
        }
    });
});

2. 其余代码无需调整

Laravel自带的paginate方法会自动读取请求中的page查询参数,返回对应页的数据,原有Controller、路由配置均可保持不变。

内容的提问来源于stack exchange,提问作者Kraust15

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:30:05