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

按ID获取表格多行数据异常问题排查及代码优化请求

问题修复与代码修改建议

前端Ajax代码修改

假设你当前Ajax未传递目标ID参数,导致后端无法过滤数据,修改如下:

// 示例Ajax代码
$.ajax({
    url: '/your-api-endpoint',
    method: 'GET',
    // 新增:传递需要查询的ID(如果是多个ID可改为数组,比如 ids: [1,2,3])
    data: { id: targetId }, 
    success: function(response) {
        // 清空表格原有内容
        $('#target-table').empty();
        // 循环渲染指定列的数据
        response.forEach(item => {
            let row = `<tr>
                <td>${item.shirshak}</td> <!-- शिर्षक列 -->
                <td>${item.debit}</td> <!-- डेबिट列 -->
                <td>${item.credit}</td> <!-- क्रेडिट列 -->
            </tr>`;
            $('#target-table').append(row);
        });
    },
    error: function(xhr) {
        console.error('请求失败:', xhr.responseText);
    }
});
  • 核心修改:在data中传入目标ID参数,确保后端能拿到过滤条件
  • 表格渲染:只循环生成包含शिर्षक、डेबिट、क्रेडिट三列的行,避免冗余列

后端Laravel Controller代码修改

当前控制器未对接收的ID进行过滤,导致返回全量数据,修改如下:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\YourModel; // 替换为你的模型类

class YourController extends Controller
{
    public function getRowsById(Request $request)
    {
        // 验证参数是否存在
        $request->validate([
            'id' => 'required|integer', // 如果是多个ID,改为 'ids' => 'required|array'
        ]);

        // 根据ID过滤数据(如果是单个ID对应多行,比如关联parent_id)
        $rows = YourModel::where('parent_id', $request->id)->get();

        // 如果是接收多个ID,使用whereIn:
        // $rows = YourModel::whereIn('id', $request->ids)->get();

        // 返回指定字段,减少冗余数据
        return $rows->only(['shirshak', 'debit', 'credit']);
    }
}
  • 核心修改:添加参数验证,通过where/whereIn根据传入的ID过滤数据集
  • 优化:使用only()只返回需要的三个字段,减少前端处理量

额外注意事项

  • 确保路由配置正确,对应控制器方法,且允许GET/POST请求
  • 如果ID是从Modal中获取,需确认targetId变量已正确获取到Modal中的选中ID
  • 若返回数据为空,可在后端添加日志输出,排查查询条件是否正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 20:20:19