0

データベース検索結果が表示されますが、ページ リンク 2 をクリックするとページネーション リンクが機能しませんか? ここで、検索する単語の入力テキストフィールドであるビューファイルからsearch_termを取得するコントローラー関数pagesearch

<?php
class Pagesearch extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
        $this->load->model('searchmodel');
                $this->load->helper('url');
        // Load Pagination
        $this->load->library('pagination');
    }

         public function execute_search($offset=0)

        {

               $search_term = $this->input->post('tsd');
                echo $search_term;
               $pagination_per_page = 3;
        // Config setup
                $config['base_url'] = site_url('pagesearch/execute_search');

               $config['per_page'] = $pagination_per_page;
               $config['total_rows'] = count($this->searchmodel->get_results($search_term));

                $config['uri_segment'] = 2;
        $config['use_page_numbers'] = TRUE;           
        $this->pagination->initialize($config);



          $data['deals_data'] = $this->searchmodel->get_results($search_term, $pagination_per_page, (($offset != 0)?( $pagination_per_page * ($offset - 1)): 0));
          $this->load->view('deals/jsonsearch',$data);



        }
      }

here it is my model  for like query where $search    
class Searchmodel extends CI_Model {

    public function __construct()
    {
        $this->load->database();

    }

        public function get_results($search_term, $limit, $offset=0)
    {


      $this->db->select('*');
    $this->db->like('name',$search_term);

      $query = $this->db->get('deals',$limit,$offset);




         return $query->result_array();


    }


}   

here it is view code look like this

<div id="dealsData">
    <?php foreach ($deals_data as $data): ?>
          //some code
    <?php endforeach ?>



    <div id="pagination">
        <?php echo $this->pagination->create_links(); ?>
    </div>

</div>

自分でいろいろ試してみましたが、適切な結果が得られませんでしたか?

4

2 に答える 2

0

codeigniter アプリケーションで検索を使用する最良の方法は、nettuts に関する次のチュートリアルです。複数のフィールドを使用してレコードを検索し、ページネーションを簡単に確認できます。

検索結果

于 2013-02-18T10:16:52.787 に答える
0

ここに私がどのように実装したかの例があります

コントローラ内

function index()
{
  $this->load->library('pagination');

$config = array();
$config["base_url"] = base_url() . "city/index";
$config["total_rows"] = $this->city_model->record_count();
$config["per_page"] = 20;
$config["uri_segment"] = 4;

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

$page = ($this->uri->segment(4)) ? $this->uri->segment(4) : 0;
$data["city"] = $this->city_model->get_cities($config["per_page"], $page);
$data["links"] = $this->pagination->create_links();
}

モデル内

function record_count() 
{
   return $this->db->count_all("city");
}

function get_cities($limit,$start)
{       

   $this->db->limit($limit,$start);
   $this->db->select('*');
   $this->db->from('city');
   $this->db->order_by('city_name');
   $query = $this->db->get();

   if ($query->num_rows() > 0) {
       foreach ($query->result() as $row) {
        $data[] = $row;
   }

 return $data;
}

 return false;

}
于 2013-02-18T15:16:31.670 に答える