首页 > 解决方案 > codeigniter 中的搜索按钮

问题描述

我搜索成功了,但是我有一个问题,提交和输入按钮为空时,如何没有出现数据

模型

public function db_tracking($cari){
    $data = $this->db->query("SELECT id_service,kd_cs,tracking_number,nama_cs,reciver_name,tanggal,status,tgl_pickup,jam_pickup,nama_kecamatan AS tujuan, nama_kabupaten AS asal FROM service s
        INNER JOIN customers c ON s.id_cs=c.id_cs 
        INNER JOIN kabupaten k ON s.id_origin=k.id_kab 
        INNER JOIN kecamatan p ON p.id_kec=s.id_destination WHERE tracking_number LIKE '%$cari%' ORDER BY id_service DESC ");
    return $data->result();
}

控制器

public function hasil_cari(){
  $cari=$this->input->post('submit');
  $data['tracking'] = $this->M_home->db_tracking($cari);
  $this->load->view('frontend/v_hasil_cari', $data);
}

看法

<form action="<?php echo base_url('home/hasil_cari')?>" action="GET">
      <div class="tracking"> 
           <textarea type="text"  name="submit" placeholder="Track Your Number" class="track"></textarea> 
      </div> 
     <div class="tracking-btn">
       <button type="submit">Track Shipment</button>
    </div>
</form>

标签: phpcodeignitersearch

解决方案


表单没有使用 post 方法,但它使用 get (顺便说一句,你有错字,应该是method="GET",但默认的表单方法仍然是GET而不是 POST),更改submitget应该解决空submit值:

$cari=$this->input->get('submit');

编辑


如果要在提交文本区域为空时显示所有搜索结果,可以进行如下条件查询:

public function db_tracking($cari){
    $query = "SELECT id_service,kd_cs,tracking_number,nama_cs,reciver_name,tanggal,status,tgl_pickup,jam_pickup,nama_kecamatan AS tujuan, nama_kabupaten AS asal FROM service s
        INNER JOIN customers c ON s.id_cs=c.id_cs 
        INNER JOIN kabupaten k ON s.id_origin=k.id_kab 
        INNER JOIN kecamatan p ON p.id_kec=s.id_destination ";
    $query .= !empty($cari) ? "WHERE tracking_number LIKE '%$cari%' " : '';
    $query .= "ORDER BY id_service DESC ";
    $data = $this->db->query($query);
    return $data->result();
}

推荐阅读