我如何集成分页我的搜索在CodeIgniter? [英] How can I integrate pagination to my search in CodeIgniter?

查看:136
本文介绍了我如何集成分页我的搜索在CodeIgniter?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用codeigniter做一个简单的搜索,没有ajax或某事,我想集成分页类,我已经读了一些例子,他们使用像这样的库 $ this-> ; table-> generate($ results); 和我需要在每个结果一个按钮来编辑该条目。我已经做了,但现在以这种方式显示分页我有一个大问题,请,任何人谁可以帮助我这个问题?我只需要一个线索或某事在CI中找到



我把这里的模型,控制器和视图,以防万一



控制器

  public function searchdescription()
{
// $ keyword = $ this - > input-> post('keyword');
$ keyword = $ _POST ['keyword'];
$ this-> load-> model('searchdesc / searchdesc_model');
$ data ['retorno'] = $ this-> searchdesc_model-> querydb($ keyword);
$ this-> load-> view('searchdesc / searchresults_view',$ data);
}

模型

  function querydb($ data,$ num,$ offset)
{

$ queryresult = $ this-> db-> query * from data where deleteflag = 0 and title like'%$ data%'or text like'%$ data%'LIMIT $ num,$ offset);
return $ queryresult-> result_array();
}

检视

  foreach($ retorno as $ val)
{
echo $ val ['id'];
echo $ val ['title'];
echo $ val ['text'];
...这里有一些表格自动创建在每一行,我需要保持它
}


<下面是一个示例(不使用模型)

 解决方案

public function big()
{
$ this-> load-> library('pagination');
$ this-> load-> library('table');

$ config ['base_url'] = base_url()。/ site / big /';
$ where =bot ='2'OR bot ='0';
$ this-> db-> where($ where);
$ config ['total_rows'] = $ this-> db-> count_all_results('visitors');
$ config ['per_page'] = 15;
// $ config ['num_links'] = 20;
$ config ['full_tag_open'] ='< div id =pagination>';
$ config ['full_tag_close'] ='< / div>';

$ this-> pagination-> initialize($ config);

$ where =bot ='2'OR bot ='0';
$ this-> db-> where($ where);
$ this-> db-> select('id,ip,date,page,host,agent,spammer,country,total,refer'
$ this-> db-> order_by(date,DESC);
$ data ['records'] = $ this-> db-> get('visitors',$ config ['per_page'],$ this-> uri-> segment(3)

$ this-> table-> set_heading('Id','IP','Date','Page','Host','Agent','Spam' ,'Total','Referer');

$ this-> db-> select_sum('total','trips');
$ query = $ this-> db-> get('visitors');
$ data ['trips'] = $ query-> result();

$ this-> load-> view('site_view',$ data);
}

在我想要表格的视图中:

 <?php echo $ this-> table-> generate($ records); > 
<?php echo $ this-> pagination-> create_links(); >

在行中添加按钮会执行类似操作

  foreach($ records as $ row){
$ row-> title = ucwords($ row-> title);

$ this-> table-> add_row(
$ row-> date,
anchor(main / blog_view / $ row-> id,$ row-> title),
$ row-> status,
anchor(main / delete / $ row-> id,$ row-> id,array('onClick'= >return confirm('Are you sure you want to delete?')),
anchor(main / fill_form / $ row-> id,$ row-> id)
);
}
$ table = $ this-> table-> generate();
echo $ table;

当然,您会根据需要进行修改


I've used codeigniter to make an easy search, no ajax or something, and I want to integrate the pagination class, I have read some examples and they use a library like this $this->table->generate($results); and I need in each result a button to edit that entry. I already did, but now with that way of showing the pagination I have a big problem, please, could anyone help me with this issue? I just need a clue or something to find in CI

I put here my model, controller and view, just in case

controller

public function searchdescription()
     {
     //$keyword = $this->input->post('keyword');
     $keyword = $_POST['keyword']; 
     $this->load->model('searchdesc/searchdesc_model');
     $data['retorno'] = $this->searchdesc_model->querydb($keyword);
     $this->load->view('searchdesc/searchresults_view', $data);
}

model

function querydb($data,$num, $offset)
    {

    $queryresult = $this->db->query("select * from data where deleteflag=0  and title like     '%$data%' or text like '%$data%' LIMIT $num, $offset ");
    return $queryresult->result_array();
    }

view

foreach ($retorno as $val)
{
echo $val['id'];
echo $val['title'];
echo $val['text'];
...here are some forms autocreated in each row that i need to keep making it
}

解决方案

Here is an example (not using a model)

public function big()
{
    $this->load->library('pagination');
    $this->load->library('table');

    $config['base_url'] = base_url().'/site/big/';
    $where = "bot = '2' OR bot = '0'";
    $this->db->where($where);
    $config['total_rows'] = $this->db->count_all_results('visitors');
    $config['per_page'] = 15;
    //$config['num_links'] = 20;
    $config['full_tag_open'] = '<div id="pagination">';
    $config['full_tag_close'] = '</div>';

    $this->pagination->initialize($config);     

    $where = "bot = '2' OR bot = '0'";
    $this->db->where($where);
    $this->db->select('id, ip, date, page, host, agent, spammer, country, total, refer');
    $this->db->order_by("date", "DESC");
    $data['records'] = $this->db->get('visitors', $config['per_page'], $this->uri->segment(3));

    $this->table->set_heading('Id', 'IP', 'Date', 'Page', 'Host', 'Agent', 'Spam', 'Country', 'Total', 'Referer');

   $this->db->select_sum('total', 'trips');
   $query = $this->db->get('visitors');
   $data['trips'] = $query->result();

    $this->load->view('site_view', $data);      
}

In the view where I want the table:

<?php echo $this->table->generate($records); ?>
<?php echo $this->pagination->create_links(); ?>

to add buttons in the rows do something like this

foreach($records as $row){
$row->title = ucwords($row->title);

$this->table->add_row(
$row->date,
anchor("main/blog_view/$row->id", $row->title),
$row->status,    
anchor("main/delete/$row->id", $row->id, array('onClick' => "return confirm('Are you sure you want to delete?')")),
anchor("main/fill_form/$row->id", $row->id)
);
}
$table = $this->table->generate();
echo $table;

Of course you will modify to fit your needs

这篇关于我如何集成分页我的搜索在CodeIgniter?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆