Cara menggunakan apa itu pagination html

#PHP #Codeigniter

Saat kita punya banyak konten, kita tidak mungkin akan menampilkan semuanya.

Misalnya kita punya 1000 artikel.

Bisa saja kita tampilkan 1000 artikel di halaman list artikel, namun ini bukan praktik yang baik, karena semua artikel akan numpuk di satu halaman.

Lalu solusinya gimana?

Solusinya kita bisa pakai Pagination.

Mari kita pelajari!

Pagination adalah teknik membagi halaman menjadi beberapa segmen atau bagian. Ini diperulkan untuk menampilkan list data yang panjang dan banyak.

Codeigniter sendiri menyediakan library khusus untuk membuat Pagination. Ada 4 tahap yang harus dilakukan untuk menggunakan library ini.

  1. Load Library
  2. Buat konfigurasi
  3. Inisialisasi
  4. Menampilkan pagination di view.

Contoh kodenya:

// 1. load library
$this->load->library['pagination'];

// 2. konfigurasi
$config['base_url'] = '//example.com/index.php/test/page/';
$config['total_rows'] = 200;
$config['per_page'] = 20;

// 3. initialize
$this->pagination->initialize[$config];

// 4. tampilkan link di view
echo $this->pagination->create_links[];

Biar lebih jelas, mari kita coba di dalam project beritacoding.

Pertama, kita akan membuat pagination di halaman list artikel publik.

Silahkan buka project beritacoding, kemudian ikuti langkah-langkah berikut:

1. Mengubah Model Article_model

Kita membutuhkan method untuk menghitung jumlah artikel yang sudah terbit. Ini nanti akan kita pakai untuk mengisi konfigurasi $config['total_rows'] pada pagination.

Oke, silahkan buka file models/Article_model.php, kemudian tambahkan method baru seperti ini:

public function get_published_count[]
{
	$query = $this->db->get_where[$this->_table, ['draft' => 'FALSE']];
	return $query->num_rows[];
}

Method ini akan mengembalikan nilai berupa integer yang merupakan jumlah artikel yang sudah terbit.

..dan perhatikan juga method get_published[] pada model Article_model. Pastikan method ini punya parameter $limit dan $offset.

public function get_published[$limit = null, $offset = null]
{
	if [!$limit && $offset] {
		$query = $this->db
			->get_where[$this->_table, ['draft' => 'FALSE']];
	} else {
		$query =  $this->db
			->get_where[$this->_table, ['draft' => 'FALSE'], $limit, $offset];
	}
	return $query->result[];
}

Tujuannya agar kita bisa mengambil artikel dengan rentang dan batasan tertentu.

Selanjutnya kita akan menggunakannya pada controller.

2. Mengubah Controller

Buka file controllers/Article.php kemudian ubah isi method index[] menjadi seperti ini:

public function index[]
{
	$this->load->library['pagination'];

	$config['base_url'] = site_url['/article'];
	$config['page_query_string'] = TRUE;
	$config['total_rows'] = $this->article_model->get_published_count[];
	$config['per_page'] = 2;

	$this->pagination->initialize[$config];
	$limit = $config['per_page'];
	$offset = html_escape[$this->input->get['per_page']];

	$data['articles'] = $this->article_model->get_published[$limit, $offset];

	if[count[$data['articles']] > 0]{
		$this->load->view['articles/list_article.php', $data];
	} else {
		$this->load->view['articles/empty_article.php'];
	}
}

Coba perhatikan $config['per_page'] = 2, ini adalah jumlah artikel yang akan di tampilkan pada setiap halaman. Kamu bisa mengubahnya menjadi berapa pun yang diinginkan.

Karena saya punya 5 artikel di database, saya taruh 2 agar pagination-nya bisa bekerja.

Oke selanjutnya, kita akan mengubah view.

3. Mengubah View

Buka file views/list_article.php, kemudian ubah kodenya menjadi seperti ini:





	




	

	
		List Artikel
		
			
				
					

Bài mới nhất

Chủ Đề