CodeIgniter Les Résultats De La Recherche De La Pagination

Eh bien, j'ai cherché et cherché tout autour, mais je ne peut toujours pas trouver une solution à mon problème. Je suis encore nouveau pour php et codeigniter alors peut-être que j'ai raté la réponse déjà, mais en tout cas, voilà ce que je suis en train de faire.

C'est mon Contrôleur (c_index.php) - les appels d'une fonction de recherche et effectue la pagination sur le tableau résultant.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class C_index extends CI_Controller {


public function __construct()
{
    parent::__construct();
    $this->load->model('m_search');
    $this->load->library("pagination");
    $this->load->library("table");
}
/** Index Page for this controller */
public function index()
{
    if($this->session->userdata('logged_in')){
        $this->load->view('v_user');    
    }   
    else{
        $this->load->view('index'); 
    }
}

public function search() 
{
            //start of search
    $search_term = $this->input->post('word');
    $books = $this->m_search->search_books($search_term);

            //start of pagination
    $config['base_url'] = "http://localhost/test/index.php/c_index/search";
    $config['per_page'] = 5;
    $config['num_links'] = 7;
    $config['total_rows'] = count($books);

    echo $config['total_rows'];
    $this->pagination->initialize($config);
    $data['query'] = array_slice($books,$this->uri->segment(3),$config['per_page']);
    $this->load->view("index",$data);

}

}

Voici mon point de vue (index.php) - essentiellement simplement l'affichage de la pagination résultat

<h3> Search Results </h3>   
    <!-- table -->              
    <table class="table table-condensed table-hover table-striped" id="result_table">
        <tbody>
        <?php
        if(isset ($query)){
            if(count($query)!=0){
                foreach($query as $item){
                echo "<tr><td>". $item['title'] ." by " .$item['author'] ."<br/></td></tr>";
                }
                echo $this->pagination->create_links();
            }
            else
            {
                echo "No results found for keyword ' ". $this->input->post('word')." ' .";
            }
        }
        else
        {
            echo "Start a search by typing on the Search Bar";
        }
        ?>              
        </tbody>
    </table>

Mon modèle (m_search.php) - essentiellement de la recherche dans la base de données et renvoie un tableau de résultats.

<?php

classe M_search s'étend CI_Model{

function search_books($search_term='default')
{
$filter = $this->input->post('filter');
//echo $filter;
if($filter == 'title')
{
//echo 'title';
$this->db->select('*');
$this->db->from('book');
$this->db->like('title',$search_term);
//Execute the query.
$query = $this->db->get();
return $query->result_array();
}else if($filter == 'author')
{
//echo 'author';
$this->db->select('*');
$this->db->from('book');
$this->db->like('author',$search_term);
//Execute the query.
$query = $this->db->get();
return $query->result_array();
}else if($filter == 'type')
{
//echo 'type';
$this->db->select('*');
$this->db->from('book');
$this->db->like('book_type',$search_term);
//Execute the query.
$query = $this->db->get();
return $query->result_array();
}else if($filter == 'status')
{
//echo 'status';
$this->db->select('*');
$this->db->from('book');
$this->db->like('book_status',$search_term);
//Execute the query.
$query = $this->db->get();
return $query->result_array();
}else
{
//echo 'all';
$this->db->select('*');
$this->db->from('book');
$this->db->like('book_status',$search_term);
$this->db->or_like('book_type',$search_term);
$this->db->or_like('author',$search_term);
$this->db->or_like('title',$search_term);
//Execute the query.
$query = $this->db->get();
return $query->result_array();
}
}
}

Maintenant mon problème est de garder les résultats pour la pagination.

La première page c'est bien, mais à chaque fois que je clique sur un lien de la page, les résultats du tableau montrent l'ensemble de la base de données et n'est pas limité à mes résultats de recherche.

J'ai lu quelque part que j'ai besoin d'utiliser les sessions pour conserver ma search_term de sorte que cela fonctionne lorsque je change de pages, mais je ne sais pas où le mettre.
Tous les conseils ou suggestions seraient grandement appréciés. Merci.

J'utilise ajax + jQuery datatables. Il semble plus facile pour moi, peut-être que ça marchera pour vous? [lien]datatables.net

OriginalL'auteur user3348358 | 2014-02-24