Fungsi PHP: Paging dengan Parameter Tambahan

NgoprekProgrammingTutorial
  1. Beranda
  2. Ngoprek
  3. Fungsi PHP: Paging dengan Parameter Tambahan

Dulu sudah pernah buat helper paging atau pagination untuk Codeigniter, dengan fitur untuk ditambahkan parameter seperti filter, lengkap dengan menggunakan URI assoc atau Associative Array. Tapi kali ini rasanya perlu dibuat fungsi paging untuk versi PHP murni alias tanpa framework (CI), karena kadang ini diperlukan juga untuk script-script pendek, atau yang perlu menggunakan fungsi ini untuk belajar.

Proses paging biasanya yang diperlukan adalah total record, offset, dan limit dari situ aja bisa didapat jumlah halaman yang kemudian diolah jadi link-link dari offset dan limit. Di sini ada tambahan parameter yaitu query string yang disertakan ke dalam link paging tadi, artinya parameter dari GET nantinya juga disertakan di link paging tersebut.

Langsung saja, bisa dilihat demonya di sini.
Atau copas sourcenya di sini.

Berikut fungsi pagingnya:

function paging($varnm, $total, $offset, $limit, $qstr='')
{
	//query string
	$nqstr = '';
	foreach($qstr as $key => $value)
	{
		if ($varnm!=$key)
			$nqstr .= $key.'='.$value.'&';
	}

	//offset top bot
	$p_str = $rt = '';
	if ($offset=='') $offset=0;
	$lim_bot = 4;
	$lim_top = 3;
	$bot = ($offset/$limit)-$lim_bot;
	$top = ($offset/$limit)+$lim_top;

	if ($bot$limit)
	{
		$offsetnum = floor($total/$limit);
		$offsetmod = $total%$limit;
		if ($offsetmod>0)
			$offsetnum++;

		for($i=0;$i$i)
			{				
				if($pp==$offset)
					$p_str .= ''.$j.' ';
				else
					$p_str .= '<a href="?'.$nqstr.''.$varnm.'='.$pp.'">'.$j.'</a> ';
			}
		}

		//prev next first last
		$prev = $next = '';
		$p_prev = $p_next = 0;
		if ($offset>0)
			$p_prev = ($offset-$limit);
		if ($offset=0)
			$prev = '?'.$nqstr.$varnm.'='.$p_prev;
		if ($total>=$p_next)
			$next = '?'.$nqstr.$varnm.'='.$p_next;

		$first = '?'.$nqstr.$varnm.'=0';
		$last = '?'.$nqstr.$varnm.'='.($total-1);

		$rt = sprintf("Showing %s of %s. <a href="\"%s\"">First</a> <a href="\"%s\""><</a> %s <a href="\"%s\"">></a> <a href="\"%s\"">Last</a> ", $limit, $total, $first, $prev, $p_str, $next, $last);
	}
	else if ($total > 0)
		$rt = sprintf("Showing %s of %s.", $total, $total);

	//if no record  found
	if ($rt=='') $rt = "No record found.";

	return $rt;
}

Mungkin Kamu juga suka

Yii: Cara buat CRUD di dalam Module menggunakan Gii
Fungsi PHP: Mengurai Daftar Angka

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Fill out this field
Fill out this field
Mohon masukan alamat email yang sah.
You need to agree with the terms to proceed

Latest

Tak ditemukan hasil apapun.