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

Codeigniter中AJAX联动下拉框返回null,字段无法显示求助

问题排查与修复方案

我帮你梳理了代码里的几个关键问题,这些应该就是导致返回null、字段无法正常显示的原因,一步步来修改:


1. AJAX请求方式与Controller参数接收不匹配

你的JS里AJAX默认是GET请求,但Controller里用$this->input->post('kode_penitipan')接收参数,这就导致后端拿不到选中的ID,自然查不到数据返回null。

修复方案(二选一)

方案一:修改AJAX为POST请求(推荐)

function getdata(selectElement) {
  var kode_penitipan = selectElement.value; // 直接用传入的下拉框元素值,无需重复查询DOM
  $.ajax({
    url: '<?php echo site_url('transaksi/getPenitip') ?>',
    type: 'POST', // 指定POST请求类型
    data: { kode_penitipan: kode_penitipan }, // 用对象格式传参更规范
    dataType: 'json', // 告诉jQuery返回的是JSON,自动解析为对象
    success: function (data){
      if(data){ // 先判断数据存在再赋值
        $('#kode_deskripsi').val(data.kode_deskripsi);
        $('#time_in').val(data.time_in);
      }
      console.log(data);
    }
  });
}

方案二:修改Controller用GET方式接收参数

public function getPenitip() {
  $kode_penitipan = $this->input->get('kode_penitipan'); // 改为get接收
  $data = $this->M_Transaksi->getAutocomplete($kode_penitipan);
  echo json_encode($data);
}

2. Model中查询结果遍历错误

你在Model里直接foreach ($query as $key)是错误的,因为$this->db->get('penitipan')返回的是CodeIgniter的查询结果对象,不能直接遍历。而且根据业务场景,kode_penitipan应该是唯一标识,直接获取单条数据即可。

修复后的Model代码

public function getAutocomplete($kode_penitipan) {
  $this->db->where('kode_penitipan', $kode_penitipan);
  $this->db->where('status', '1');
  $query = $this->db->get('penitipan');
  
  if ($query->num_rows() > 0) {
    $row = $query->row(); // 获取单条数据对象
    return array(
      'kode_deskripsi' => $row->kode_deskripsi,
      'time_in' => $row->time_in,
    );
  } else {
    return null; // 无数据时明确返回null
  }
}

3. 额外优化:简化JS函数参数

原来的函数参数没用到,直接用传入的下拉框元素获取值更高效,避免重复查询DOM(已经在方案一的JS代码里体现了)。


测试建议

可以先在Controller里临时打印接收的参数,确认是否正确传递:

public function getPenitip() {
  $kode_penitipan = $this->input->post('kode_penitipan');
  var_dump($kode_penitipan); // 查看是否拿到选中的ID
  $data = $this->M_Transaksi->getAutocomplete($kode_penitipan);
  echo json_encode($data);
}

如果var_dump输出null,就回到AJAX的请求方式和参数传递问题上排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:26:42