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

Laravel模态框中jQuery Bootstrap Table传参值减1异常求助

可能的原因及解决方案

兄弟,我之前也踩过类似的坑,从你描述的「表格显示数值正常,但点击传值就小1」来看,大概率是前端把循环索引和实际ID搞混了——毕竟你控制器里用$i从0开始循环,刚好会比从1起步的业务ID小1。下面给你拆解几个最常见的场景:

1. 前端渲染时误传了循环索引

比如你在Blade模板里写点击事件时,不小心把循环的$i(索引值)当成了adset_id传进函数:

{{-- 错误示例:传了从0开始的循环索引 --}}
<button class="btn" onclick="handleAdset({{$i}})">查看详情</button>

{{-- 正确写法:传实际的adset_id --}}
<button class="btn" onclick="handleAdset({{$adsetid}})">查看详情</button>

这种情况下,表格显示的是正确的$adsetid,但点击时传的是从0开始的索引,自然会比实际ID小1。

2. Bootstrap Table内置事件绑定错误

如果你用的是Bootstrap Table的onClickRow这类内置事件处理点击,可能不小心取了行索引而非数据里的adset_id:

// 错误示例:取了行索引rowIndex
$('#adset-table').bootstrapTable({
  onClickRow: function(row, $element, rowIndex) {
    handleAdset(rowIndex); // 这里传的是从0开始的索引
  }
});

// 正确写法:直接取数据中的adset_id字段
$('#adset-table').bootstrapTable({
  onClickRow: function(row, $element, rowIndex) {
    handleAdset(row.adset_id); // 用数据源里的实际ID
  }
});

这种情况同样会导致点击传值是索引,和表格显示的正确ID差1。

3. 快速排查技巧

  • 打开浏览器控制台,点击表格行/按钮时用console.log()打印传递的参数,对比显示值和实际传值的差异;
  • 用dd($summary)输出控制器返回给前端的数组,确认里面的adset_id是正确数值;
  • 检查Blade模板里所有绑定点击事件的地方,确保参数是$adsetid而非循环索引$i。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:38:09