codeigniter: нумерация страниц + библиотеки таблиц (не работает) - PullRequest
0 голосов
/ 21 июля 2011

Мне нужна помощь по моему приложению для воспламенения кода .. Кажется, я не могу выяснить, что заставляет нумерацию страниц не работать

вот мой контроллер

$limit = 15;
        $uri_segment = 4;
        $this->load->helper('string');

        $offset = $this->uri->segment( $uri_segment );
        log_message('error',date('Y-m-d H:i:s', time()));
        //load
        //$products = $this->Products_model->get_all();
        $products = $this->Products_model->get_products($limit, $uri_segment);
        //var_dump($products);

        log_message('error', $products );

        //pagination
        $this->load->library('pagination');
        $config['base_url'] = site_url('admin/products/index/');
        $config['total_rows'] = $this->Products_model->count_all();
        $config['per_page'] = $limit;
        $config['uri_segment'] = $uri_segment;
        $this->pagination->initialize($config);

        $data['pagination'] = $this->pagination->create_links();

        //table
        $this->load->library('table');
        $this->table->set_empty(" ");
        $this->table->set_heading('ID', 'Product','Category', 'Actions');
        $i = 0 + $offset;
        foreach ($products as $product){
            ++$i;
            $this->table->add_row($product->id, $product->title, $this->Categories_model->get_by_id($product->category_id)->title,
                anchor('/admin/products/update/'.$product->id,'update',array('class'=>'update')).' '.
                anchor('/admin/products/delete/'.$product->id,'delete',array('class'=>'delete','onclick'=>"return confirm('Are you sure want to delete this product?')"))
            );
        }
        $data['table'] = $this->table->generate();

        //load template
        $this->products_list();
        $this->products_template();
        $this->template->build('products/productList', $data);

вот моя модель

function get_products($num, $offset) {
    return $this->db->get($this->tbl_products, $num, $offset)->result();    
}

генерирует ссылки, но затем не загружает следующий набор записей ... какие-либо исправления в приведенном выше коде?

спасибо!

Ответы [ 3 ]

1 голос
/ 21 июля 2011

Вы должны дать страницу к таблице, а не к полной таблице. Нумерация страниц просто заполняет ссылки, но не вносит никаких изменений в ваши данные, это ваша ответственность.

Пожалуйста, измените:

        $products = $this->Products_model->get_all();

с:

        $products = $this->Products_model->get_page( $Offset, $this->limit ); // It's not clear where do you define limit.

и в вашей модели сделайте правильный выбор:

function get_page( $offset, $limit ){
    return $this->db->get( $this->tbl_products, $limit, $offset )->result();
}
0 голосов
/ 08 сентября 2013

Вот ваша ошибка

$products = $this->Products_model->get_products($limit, $uri_segment);

$limit=the number of data you want to show in per page,

$offset=the data number start from.

Так что нажимая на ссылку, вы должны изменить значение смещения, чтобы показать данные. попробуйте это

if($this->uri->segment(uri_segment) > 0){

                $offset=$this->uri->segment($uri_segment);

            }
            else{
                $offset=0;

            }
$products = $this->Products_model->get_products($limit, $offset);
0 голосов
/ 26 марта 2013

Вы должны убедиться, что ваш лимит ($ this-> limit) содержит правильные данные (только целые числа). Если у вас включена строка запроса, вы можете передать строку '& per_page =' в вашу модель. Если это так, очистите $ this-> limit с помощью регулярного выражения или str_replace.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...