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

分页页面如何阻止JS自动加载导致订单数据回退至首页?

解决自动刷新后分页回退到第一页的问题

这个问题其实很好理解——你每次调用{{ route('autoload') }}时都没传递当前的分页页码参数,后端自然每次都返回第一页的订单数据,刷新后就自动跳回去了。咱们一步步来修复:

第一步:修改后端,支持接收分页参数

先调整OrdersController里的autoloadOrders方法,让它能获取当前页码(默认值设为1),然后返回对应页的未交付订单:

public function autoloadOrders(Orders $orders)
{
    // 从请求中获取页码,默认显示第一页
    $currentPage = request()->get('page', 1);
    // 假设getUndeliveredOrders返回查询构造器,调用paginate并指定当前页码
    $paginatedOrders = $orders->getUndeliveredOrders()->paginate(15, ['*'], 'page', $currentPage);
    
    return view('admin.partials.autoload')->with(['orders' => $paginatedOrders]);
}

小提示:如果你的getUndeliveredOrders已经返回分页集合,直接把$currentPage传入对应分页方法即可;如果是查询构造器,按上面的写法用paginate指定页码参数就好。

第二步:前端跟踪分页页码,刷新时携带参数

接下来修改welcome.blade.php里的JavaScript逻辑,让它记住当前选中的页码,每次定时刷新时把参数传给后端:

<script>
$(document).ready(function() {
    // 初始化当前页码:从URL的query参数提取,默认1
    let currentPage = new URLSearchParams(window.location.search).get('page') || 1;

    // 监听分页链接点击,更新当前页码并手动加载对应页数据
    $(document).on('click', '.pagination a', function(e) {
        e.preventDefault();
        // 从分页链接的href里解析出page参数
        const linkUrl = new URL($(this).attr('href'));
        currentPage = linkUrl.searchParams.get('page') || 1;
        // 加载对应页的表格
        $('#autoload').load(`{{ route('autoload') }}?page=${currentPage}`);
        // 更新浏览器URL的query参数,保持页面状态一致
        window.history.pushState({}, '', `?page=${currentPage}`);
    });

    // 定时刷新表格,携带当前页码参数
    setInterval(function() {
        $('#autoload').load(`{{ route('autoload') }}?page=${currentPage}`);
    }, 2000);
});
</script>

第三步:确认局部视图逻辑一致

你的autoload.blade.php里的表格渲染逻辑和主页面完全匹配,这部分不需要修改,保持原样即可。

修复原理说明

  • 后端现在会根据传入的page参数返回对应页的数据,不再固定返回第一页
  • 前端通过监听分页链接点击事件,实时更新当前页码,并且在定时刷新时把这个参数传递给后端
  • 用pushState更新浏览器URL的query参数,保证用户刷新整个页面时也能回到当前分页位置

这样修改后,不管你切换到哪一页,定时刷新都会加载当前页的最新订单数据,再也不会自动跳回第一页啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 08:57:50