Помогни ни да направим Uroci.net по - богат! Добави урок

Странициране с PHP

PHP » PHP
marsim81   трудност:    видян: 7729

<?
//$maxRowsPerPage: Брой редове на страница
$maxRowsPerPage = 4;
//$fruits_r: Масив с тестови данни
$fruits_r = array(	
	array('name' => 'Bannana'  , 'price' => 11), 
	array('name' => 'Apple'    , 'price' => 12),
	array('name' => 'Avocado'  , 'price' => 13),
	array('name' => 'Apricot'  , 'price' => 14),
	array('name' => 'Cherry'   , 'price' => 15), 
	array('name' => 'Coco Plum', 'price' => 16),
	array('name' => 'Melon'    , 'price' => 17),
	array('name' => 'Grape'    , 'price' => 18),
	array('name' => 'Lemon'    , 'price' => 19),
	array('name' => 'Lime'     , 'price' => 20), 
	array('name' => 'Mandarin' , 'price' => 21),
	array('name' => 'Papaya'   , 'price' => 22), 
	array('name' => 'Plum'     , 'price' => 23), 
	array('name' => 'Pummelo'  , 'price' => 24),	
);

$lenArr = count($fruits_r);
//$maxPages: Брой страници 
$maxPages = $lenArr / $maxRowsPerPage;
$maxPages = (int)$maxPages;
$maxPages += (($maxPages % $lenArr) > 0 ? 1 : 0);

//$pageN: Номер на страница
$pageN = (int)$_POST['pageN'];
//$_POST['btnPage']: 4 основни бутона за странициране: 'first', 'previous', 'next', 'last' 
if($_POST['btnPage'] == 'first') {
	$pageN = 0;	
} elseif($_POST['btnPage'] == 'next' && ($pageN + 1) < $maxPages) {
	$pageN++;
} elseif($_POST['btnPage'] == 'previous' && $pageN > 0) {
	$pageN--;
} else if($_POST['btnPage'] == 'last') {
	$pageN = $maxPages - 1;	
}

$limitFrom = $pageN * $maxRowsPerPage;
$limitTo = $limitFrom + $maxRowsPerPage;
if($limitTo > $lenArr) {
	$limitTo = $lenArr;
}

?>
<!DOCTYPE HTML>
<html lang="en-US">
	<head><title>Pager</title></head>
	<body>
	<form method="post" name="formFruits">	
		<input type="hidden" name="pageN" value="<?=$pageN?>" />
		<h1>Page <?=$pageN + 1?></h1>
		<hr />
		<?
		
		for($index = $limitFrom; $index < $limitTo; $index++) {
			?>
			<h2><?=$fruits_r[$index]['name']?></h2>			
			<i>price: £<?=$fruits_r[$index]['price']?></i>
			<hr />
			<?
		}
		unset($fruits_r);
		
		if($pageN != 0) {
			?>
			<input type="submit" name="btnPage" value="first" />
			<input type="submit" name="btnPage" value="previous" />
			<?	
		}
					
		if(($pageN + 1) < $maxPages) {
			?>
			<input type="submit" name="btnPage" value="next" />	
			<input type="submit" name="btnPage" value="last" />
			<?	
		}
		?>
	</form>
	</body>
</html>



Коментари (6)

Kamen91 на 23.11 2011 в 21:09ч.
Преди няколко седмици като се мъчих да направя алгоритъм за странициране, измислих един който се побира буквално на около 10 реда (свързан с mysql база данни разбира се), мога да го постна тука ако някой се интересува.
silste на 27.11 2011 в 10:05ч.
ок постни го да го видя
Kamen91 на 01.12 2011 в 19:19ч.
Качих урока но не съм сигурен дали стана, ако нямам някакъв отговор до няколко дена ще го постна пак :)
gooshee на 10.01 2012 в 17:23ч.
@Kamen91, не мога да намеря урока ти, може ли да ми го метнеш на ЛС? :)
Kamen91 на 22.04 2012 в 21:24ч.
Ами ще опитам да го кача наново, ако и тогава нещо не се одобри ще ти го пратя :) Извинявай че чак сега пиша, не съм гледал тази тема отдавна ;/
mimo на 08.02 2014 в 21:26ч.
Как може да сложа видео

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com