Я изучаю CI, и последнее, что мне было поручено делать, это разбиение на страницы. Поэтому я последовал этому руководству, поскольку это казалось довольно красивым и объясненным. Ссылка
Паганирование работает и отлично. Теперь я хотел прочитать больше под каждым сообщением, сделав каждое сообщение открытым отдельно с его полным описанием. Это также работает, но когда я нажимаю ссылку, чтобы вернуться к индексу разбивки на страницы, список начинается с самого начала, независимо от того, какой пост я щелкнул. Я не уверен, как добавить страницу, на которую я хочу вернуть ссылку, чтобы вернуть меня, поэтому я просто отправлю это здесь, и, надеюсь, это не будет слишком сложно, если кто-то скажет мне.
Если кто-то запутался в том, что мне нужно, просто посмотрите на последний вид readmore_paginate. В нем последняя ссылка должна содержать номер обратно на страницу, но idk, как поставить или что туда положить.
контроллер
public function paginate() { $config = array(); $config['base_url'] = base_url()."welcome/paginate"; $config['total_rows'] = $this->blog_model->countPosts(); $config['per_page'] = 2; $config['uri_segment'] = 3; $this->pagination->initialize($config); $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0; //TERNARY OPERATOR (? = TRUE) (: = FALSE) $data['results'] = $this->blog_model->fetchPosts($config['per_page'], $page); $data['links'] = $this->pagination->create_links(); $this->load->view('header'); $this->load->view("p_content", $data); $this->load->view('footer'); } public function readMore_Paginate() { $id = $this->input->get('postid'); $data['post'] = $this->blog_model->getSpecificPost($id); $this->load->view('header'); $this->load->view('readmore_paginate', $data); $this->load->view('footer'); }
Модель
public function countPosts() { return $this->db->count_all("Blogposts"); } public function fetchPosts($limit, $start) { $this->db->select('*'); $this->db->from('Blogposts'); $this->db->join('Blogcategories', 'Blogposts.postcatid=Blogcategories.id'); $this->db->limit($limit, $start); $query = $this->db->get(); if($query->num_rows() > 0) { foreach ($query->result() as $row) { $data[] = $row; } return $data; } return false; }
,public function countPosts() { return $this->db->count_all("Blogposts"); } public function fetchPosts($limit, $start) { $this->db->select('*'); $this->db->from('Blogposts'); $this->db->join('Blogcategories', 'Blogposts.postcatid=Blogcategories.id'); $this->db->limit($limit, $start); $query = $this->db->get(); if($query->num_rows() > 0) { foreach ($query->result() as $row) { $data[] = $row; } return $data; } return false; }
Посмотреть p_content
<div class="col-md-8"> <table class="table"> <tbody> <?php foreach ($results as $key) { echo "<tr><th><h2><kbd><font color='yellow'>".$key->postname."</font></kbd></h2><kbd><font color='lime'>".date("d MY",strtotime($key->postdate))."</font></kbd> <kbd><font color='cyan'>".$key->catname."</font></kbd></th></tr>"; echo "<tr><td><blockquote>".mb_substr($key->postdesc, 0,80,'UTF-8')."...";?> <a href="<?php echo base_url()."welcome/readmore_paginate?postid=".$key->postid; ?>">read more</a></blockquote> <?php } ?> </tbody> </table> <p><?php echo $links; ?></p> </div>
Просмотр readmore_paginate
<div class="col-md-8"> <table class="table"> <tbody> <?php foreach ($post as $key) { echo "<tr><th><h2><kbd><font color='yellow'>".$key['postname']. "</font></kbd></h2><kbd><font color='lime'>". date("d MY",strtotime($key['postdate']))." </font></kbd> <kbd><font color='cyan'>". $key['catname']."</font></kbd></th></tr>"; echo "<tr><td><blockquote>".$key['postdesc']."</blockquote>"; ?> <a href="<?php echo base_url().'welcome/paginate'; ?>">Back to Posts</a> <?php } ?> </tbody> </table> </div>