【问题标题】:Pagination codeigniter with query search带有查询搜索的分页 codeigniter
【发布时间】:2013-08-21 02:57:49
【问题描述】:

我想在我的搜索表单中创建 codeigniter 分页,当我单击提交时,它成功显示查询搜索,但是当我单击数字页面链接或下一页时,它显示消息“未定义变量 rec”和“致命错误:在非对象上调用成员函数 num_rows()”,我确定查询已传递给变量 $rec。

当我更改页面时,我在这里看到了问题,变量返回 null,所以变量 $rec 没有从 'post' 中获取值。

我的问题:我如何保留“post”中的值,以便在我更改页面时查询将获取变量值?

这是我的控制器:

public function search(){

$kat=$this->input->post('kategori');
$prov=$this->input->post('prov');
$kot=$this->input->post('kota');


if($kat=='' && $prov!='' && $kot!=''){
$rec=$this->db->query("select * from showall where id_prov='$prov' and id_kota='$kot' ");
}
else if($kot=='' && $kat!='' && $prov!=''){
$rec=$this->db->query("select * from showall where id_kat='$kat' and id_prov='$prov' ");
}
else if($kat=='' && $kot=='' && $prov!=''){
$rec=$this->db->query("select * from showall where id_prov='$prov' ");
}
else if($kat!='' && $prov=='' && $kot==''){
$rec=$this->db->query("select * from showall where id_kat='$kat' ");
}
else if($kat!='' && $prov!='' && $kot!=''){
$rec=$this->db->query("select * from showall where id_kat='$kat' and id_prov='$prov' and id_kota='$kot' ");
}

$dat=$rec;
$data['count']=$dat->num_rows();
  if($data['count'] >0){
  $data['db']=$rec;
$config['total_rows'] = $data['db']->num_rows(); 

$config['base_url'] = base_url().'index.php/lowongan/cari';

$config['per_page'] = 1;    
$config['uri_segment'] = 3;
$this->pagination->initialize($config);
$data['paging'] = $this->pagination->create_links();
if($kat=='' && $prov!='' && $kot!=''){
$d = $this->db->get_where('showall',array('id_prov'=>$prov,'id_kota'=>$kot) ,$config['per_page'], $this->uri->segment(3));
}
else if($kot=='' && $kat!='' && $prov!=''){
$d= $this->db->get_where('showall',array('id_kat'=>$kat,'id_prov'=>$prov) ,$config['per_page'], $this->uri->segment(3));
}
else if($kat=='' && $kot=='' && $prov!=''){
$d = $this->db->get_where('showall',array('id_prov'=>$prov) ,$config['per_page'], $this->uri->segment(3));
}
 if($kat!='' && $prov=='' && $kot==''){
$d = $this->db->get_where('showall',array('id_kat'=>$kat) ,$config['per_page'], $this->uri->segment(3));
}
else if($kat!='' && $prov!='' && $kot!=''){
$d = $this->db->get_where('showall',array('id_kat'=>$kat,'id_prov'=>$prov,'id_kota'=>$kot) ,$config['per_page'], $this->uri->segment(3));
}

$data['record']=$d;
$data1['kat']=$this->query->kategoriAll();
$data1['prov']=$this->query->showProv();
$data['q1']=$this->query->lokasi();
$data['q2']=$this->query->perusahaan();
$data['q3']=$this->query->kategori();

$this->load->view("user/head");
$this->load->view("user/bar",$data1);   
$this->load->view( 'user/hal_cari',$data);
$this->load->view("user/footer");
}
else{
$data1['kat']=$this->query->kategoriAll();
$data1['prov']=$this->query->showProv();
$data['q1']=$this->query->lokasi();
$data['q2']=$this->query->perusahaan();
$data['q3']=$this->query->kategori();

$this->load->view("user/head");
$this->load->view("user/bar",$data1);   
$this->load->view( 'user/kosong',$data);
$this->load->view("user/footer");
}
}

【问题讨论】:

    标签: codeigniter pagination


    【解决方案1】:

    您需要使用 assoc_to_uri() 将条件数组保留在 URL 中。我正在做如下。

        $this->load->model('classified_model','classified');
        $ClassifiedList = $this->classified->searchPage($condition,'classified_view',$perPage,$page*$perPage);
        $uriString = $this->uri->assoc_to_uri($condition);
        $config['uri_segment'] = count($condition) * 2 + 4;
        $base_url = site_url('classified/search/' . $uriString . '/page/');
        $base_url = preg_replace("/\.[a-z]*$/","", $base_url);
        $config['base_url'] = $base_url;
        $config['per_page'] = 1;
    

    再次使用 uri 获取 $condition

       $condition = $this->uri->uri_to_assoc();
    

    【讨论】:

    • 您还可以在 thephpcode.com 上生成用于分页搜索和其他 CRUD 操作的代码。需要为每个表添加模块,然后可以为函数添加字段和操作。
    • $condition 是一个包含字段的列和值的数组。请让我知道您不明白哪一步。 searchPage 是我模型中的一种方法。
    • 那么如何从 URI 中获取查询中的变量值?
    • $condition = $this->uri->uri_to_assoc();将生成数组返回
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    相关资源
    最近更新 更多