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

CodeIgniter框架搜索框提交后返回空白无数据问题求助

CodeIgniter搜索功能无返回问题解决方案

核心错误点与修复方案

1. 控制器视图加载逻辑缺陷

你当前将视图加载代码放在isset($_POST['submittrack'])的判断分支内,只要该判断不成立,页面不会加载任何视图,也不会传递$slt参数,表现为空白无返回。
同时直接使用原生$_POST判断不符合CodeIgniter的开发规范,容易出现参数获取异常,修改后控制器代码如下:

function searchtrack() {
    $this->load->model('excel_import_model');
    // 提前初始化查询结果,避免视图出现变量未定义报错
    $data['slt'] = [];
    // 使用CI原生输入类判断提交状态,兼容性更强
    if($this->input->post('submittrack')) {
        // 提前去除参数前后空格,避免隐形字符导致匹配失败
        $awb = trim($this->input->post('awb'));
        $data['slt']= $this->excel_import_model->searchtrack($awb);
    }
    // 将视图加载移到判断外,无论是否提交都正常渲染页面
    $this->load->view("searchtrack",$data);
}

2. 视图无空结果兼容逻辑

原视图代码仅对查询结果做遍历,若没有匹配数据$slt为空数组,foreach不会输出任何内容,无法区分是逻辑错误还是无匹配数据,修改后视图代码如下:

<?php
if(!empty($slt)){
  foreach($slt as $val){ 
      echo $val->id; 
  }
}else{
  echo "未查询到匹配的运单数据";
}
?>

3. 数据库查询匹配隐形问题

若修改后仍然提示无匹配数据,可在模型中打印执行的SQL语句确认查询逻辑是否正确,修改模型代码:

public function searchtrack($awbno) {
    $this->db->select('*');
    // 对数据库字段和传入参数都做去空格处理,避免隐形空格导致匹配失败
    $this->db->where("TRIM(awb)", trim($awbno));
    $this->db->from('consignments');
    $query = $this->db->get();
    // 调试用:打印最后执行的SQL,复制到数据库直接执行可确认是否有匹配结果
    // echo $this->db->last_query();exit;
    $result = $query->result();
    return $result;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:48:02