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

CodeIgniter框架中视图层按钮值无法传递到控制器层问题求助

问题排查与解决方案

核心问题

你当前的代码只在前端获取了按钮的value值,没有发起请求将值传递到后端控制器,所以控制器无法接收到posting_user_id参数。

具体修复步骤

1. 修改前端JS,增加AJAX请求传值

将原有的点击事件代码修改为如下内容,把获取到的用户id通过POST请求传到控制器:

$(document).ready(function () {
  $('.mid').click(function(){
    var id = $(this).val(); // 推荐用val()代替attr('value')读取表单元素值
    // 先确认id正常获取
    if(!id){
      alert("用户ID获取异常");
      return false;
    }
    // 发起AJAX请求到后端控制器,此处url替换为你实际的控制器方法地址
    $.post("你的控制器方法路由地址",
      {
        posting_user_id: id,
        // 如果开启了CI的CSRF保护,需要加下面这行,csrf_test_name替换为你实际配置的csrf token名称
        // [csrf_test_name]: $('input[name="csrf_test_name"]').val()
      },
      function(res){
        // 后端返回数据后的逻辑,这里假设你要把返回的详情插入到.show_posting容器
        if(res){
          $(".show_posting").html(res).show();
        }else{
          alert("no info");
        }
      }
    );
  });
});

2. 调整控制器代码,兼容传参和返回逻辑

如果是异步请求,控制器可以直接返回渲染好的详情片段或者JSON数据,同时增加参数非空校验避免查询异常:

public function 你的方法名(){
  $posting_user_id = $this->input->post('posting_user_id');
  // 校验参数非空
  if(empty($posting_user_id)){
    echo '';
    exit;
  }
  $data['posting'] = $this->posting_models->get_manage_hospital_list($posting_user_id);
  // 如果是返回详情片段,加载对应的局部视图即可,不需要加载完整页面
  echo $this->load->view('posting_detail_part', $data, true);
  exit;
}

3. 可选:表单提交方案(页面刷新场景)

如果不需要异步无刷新加载,也可以用表单提交的方式实现:

<div class="marketer">
  <form method="post" action="你的控制器路由地址">
  <?php foreach($marketer_list as $marketer){ ?>
  <button type="submit" class="mid" name="posting_user_id" value="<?=$marketer->id?>"><?=$marketer->username?></button>
  <?php }?> 
  </form>
</div>

验证排查点

  • 先确认按钮渲染的value值正常,点击按钮时弹出的id值正确
  • 打开浏览器开发者工具的「网络」面板,确认请求中携带了posting_user_id参数
  • 控制器中临时打印var_dump($this->input->post()),确认可以正常接收到参数
  • 若开启了CodeIgniter的CSRF保护,必须在AJAX请求或表单中携带CSRF Token,否则请求会被拦截

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:39:03