Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2011, 14:40   #1
max.mix
Новичок
Джуниор
 
Регистрация: 12.06.2011
Сообщений: 1
Восклицание Пагинация, страницы

Приветствую,

пагинация вида: 1 2 3 4 5 6 7 9 10 11 12 13..и так до последней страницы имеющеся в базе..>>

выводится следующим кодом:

PHP код:
if(sizeof($rowsflats)<$total){
///pagenation start
$pagenation '';                                                                                               
if((
$ospage-$numpage) >= 0)
$pagenation.='<a href="index.php?option=com_k2&view=itemlist&layout=category&task=showtable&ob='.$ob.'&sf='.$sf.'&fvar='.$fvar.'&ordermode='.$ordermode.'&ospage='.($ospage-$numpage).'&numberp='.($numberp-1).'&specmod='.$specmod.'">'.'<<'.'</a>';
                                                        
$numpageint 0;
for(
$i=0;$i<$total;$i=$i+$numpage){                                                             
$pagenation.='<a href="index.php?option=com_k2&view=itemlist&layout=category&task=showtable&ob='.$ob.'&sf='.$sf.'&fvar='.$fvar.'&ordermode='.$ordermode.'&ospage='.($numpage*$numpageint).'&numberp='.($numpageint+1).'&specmod='.$specmod.'">'.(($numberp == ($numpageint+1))?'<b>':'').($numpageint+1).(($numberp == ($numpageint+1))?'</b>':'').'</a>&nbsp;';
++
$numpageint;
                                                                }
//next page                                                                                             
if(($ospage+$numpage) < $total)
$pagenation.='<a href="index.php?option=com_k2&view=itemlist&layout=category&task=showtable&ob='.$ob.'&sf='.$sf.'&fvar='.$fvar.'&ordermode='.$ordermode.'&ospage='.($ospage+$numpage).'&numberp='.($numberp+1).'&specmod='.$specmod.'">'.'>>'.'</a>';
                                                        
//previous page                                         
$outcontent.=$pagenation;
///pagenation end                                                       

хочу сделать так чтобы выводились не все страницы сразу из базы, а только c 1 по 10, т.е
чтобы количество выводимых страниц как-то регулировалось


Подскажите как исправить вышеуказанный код, или полностью его заменить, чтобы

пагинация была вида: 1 2 3 4 5 6 7 8 9 10 >>
или так: 1 2 3 4 5 6 7 8 9 10...N(последняя)>>


Заранее благодарю за подробный ответ!
max.mix вне форума Ответить с цитированием
Старый 13.06.2011, 02:18   #2
8oOoRPM
Форумчанин
 
Регистрация: 12.11.2010
Сообщений: 146
По умолчанию

Вот, выдрал из своего класса
Код:
// думаю всё понятно- 
// var $totJobs - обшее количество записей
// var $perPage - сколько должно на страницу выводится
// дальше разбираемся, проще некуда
private function definePags()
    {
        $pages = '<div id="pagination">';
        // get total number of pages
        $totPgs = ceil( $this->totJobs/$this->perPage );
        // if few pages
        if ( $totPgs <= 10 )
        {
            for( $i=1; $i<=$totPgs; $i++ )
            {
                if ( $i == $this->curPage )
                   $pages .= '<span id="curPage">'.$i.'</span>';
                else
                   $pages .= '<a href="/index/'.$i.'">'.$i.'</a>';   
            }
        }
        // if many
        else
        {
            // get necessary pages
            $start = $this->curPage - 3;
            $end = $this->curPage + 3;
            $start = $start<=0?1:$start;
            $end = $end>$totPgs?$totPgs:$end;
            
            // some dots ;D
            $pages .= $start>1?'...':'';
            
            for( $i=$start; $i <= $end; $i++ )
            {
               if ( $i == $this->curPage )
                   $pages .= '<span id="curPage">'.$i.'</span>';
                else
                   $pages .= '<a href="/index/'.$i.'">'.$i.'</a>'; 
            }
            // some other dots...
            $pages .= $end<$totPgs?'...':'';
        }
        $pages .= '</div>';
        // const that contain html pagination
        define('PAGINATION', $pages);
    }
8oOoRPM вне форума Ответить с цитированием
Старый 09.01.2012, 23:28   #3
Deviceuplvl
Новичок
Джуниор
 
Регистрация: 09.01.2012
Сообщений: 1
По умолчанию

Подскажите,а кнопку "Посмотреть все" как добавить?( выводит все материалы на страницу)
Deviceuplvl вне форума Ответить с цитированием
Старый 09.01.2012, 23:50   #4
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Добавь проверку в скрипт. Если такая кнопка нажата, то не ставить лимит.
http://phpfaq.ru/paginator

2 8oOoRPM, а у вас в запросе ограничение не стоит (limit)?
psycho-coder вне форума Ответить с цитированием
Старый 13.01.2012, 09:27   #5
chyvakoff
Пользователь
 
Аватар для chyvakoff
 
Регистрация: 10.12.2011
Сообщений: 91
По умолчанию

Сталкивался с той же самой проблемой в джумле..в начале своего боевого пути))
chyvakoff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разметка страницы n2k HTML и CSS 4 11.03.2011 11:40
Вставка особой нумерации на нечетные страницы с разрывом страницы akokin Microsoft Office Word 13 20.10.2009 15:23
Страницы Grek55 Софт 2 06.05.2009 11:34
Динамическое изменение URL страницы в JavaScript без перезагрузки страницы ilusha JavaScript, Ajax 7 25.02.2009 09:59
Как сделать разрыв страницы печати по условию и узнать номер страницы Leanna Microsoft Office Excel 2 21.01.2008 06:59