Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Постраничная навигация
 
 автор: Школьник   (03.02.2007 в 16:21)   письмо автору
 
 

Кто уже делал постраничную навигацию как на digg.com, дайте скриптик плз =)

Спасибо!

   
 
 автор: Alph[p]a   (03.02.2007 в 17:05)   письмо автору
 
   для: Школьник   (03.02.2007 в 16:21)
 

у меня http://digg.com/ не открывается мож покажешь какая она из себя эта навигация (прилипи скрин)

   
 
 автор: школьник   (03.02.2007 в 18:25)   письмо автору
 
   для: Alph[p]a   (03.02.2007 в 17:05)
 

Если активная страница до (10/2=5 )и общее количество страниц больше 10 то вид вывода такой:
<-назад 1 (2) 3 4 5 6 7 8 9 10 ... 67 68 вперед ->

Если активная страница больше (10/2=5) но меньше 10, то вид такой:
<-назад 1 2 3 4 5 (6) 7 8 9 10 ... 67 68 вперед ->

Если активная страница больше 10, то вид такой:
<-назад 1 2 ... 12 13 14 (15) 16 17 18 20 ... 67 68 вперед ->

Если активная страница в последней 10, то вид такой:
<-назад 1 2 ... 58 59 60 61 62 63 64 65 66 (67) 68 вперед ->

где:

в скобках активная страница, она находится в середине 10.

10 - это количество страниц в списке.

   
 
 автор: t4f   (03.02.2007 в 18:45)   письмо автору
 
   для: школьник   (03.02.2007 в 18:25)
 

http://softtime.ru/info/articlephp.php?id_article=33

   
 
 автор: школьник   (03.02.2007 в 19:17)   письмо автору
 
   для: t4f   (03.02.2007 в 18:45)
 

Proboval, znayu.

No kak sdelat` tak kak na digg.com?

   
 
 автор: malish   (03.02.2007 в 20:14)   письмо автору
 
   для: школьник   (03.02.2007 в 19:17)
 

а что именно "как на digg.com"?? циферки в синих квадратиках чтоли?

   
 
 автор: bronenos   (03.02.2007 в 20:16)   письмо автору
 
   для: malish   (03.02.2007 в 20:14)
 

Нет
Показ в таком виде
Как на яндексе (вроде)

Кажется понял
Берете весь десяток чисел в которое входит ваша страница + 2 первых и 2 последних

   
 
 автор: школьник   (03.02.2007 в 22:42)   письмо автору
 
   для: bronenos   (03.02.2007 в 20:16)
 

Да да, именно так.

Я пришел к выводу что это самая удобная постраничная навигация, все время в середине десятка и есть начало и конец.

   
 
 автор: школьник   (03.02.2007 в 22:42)   письмо автору
 
   для: malish   (03.02.2007 в 20:14)
 

Нет, не оформление -)

   
 
 автор: bronenos   (03.02.2007 в 21:00)   письмо автору
 
   для: школьник   (03.02.2007 в 19:17)
 

<?
$page 
intval ($_GET['page']);
if (
$page==0$page=1;
define ('page'$page);

$total 50// всего страниц
$perpage 10// выводить за раз
$area ceil (page $perpage);

function 
link ($num) {
 
$name = (page==$num) ? "[$num]" "$num";
 return 
"<a href='?page=$num'>$name</a>";
}

 if (
page>$perpage) {
  
$pages[] = link (1);
  
$pages[] = link (2);
 }

 for (
$i=(($area-1)*$perpage); $i<=($area*$perpage); $i++)
  if (
$i<=$total)
   
$pages[] = link ($i);

 if ((
$area*$perpage)<($total-2))
  
$pages[] = link ($total-2);
 if ((
$area*$perpage)<($total-1))
  
$pages[] = link ($total-1);
?>


очень коряво но примерно так мне кажется

   
 
 автор: школьник   (03.02.2007 в 22:48)   письмо автору
 
   для: bronenos   (03.02.2007 в 21:00)
 

Да, клево, немного под шаманить вид и это то что надо! Спасибо, предлагаю именно эту по страничную навигацию выложить на сайте, придать ей вид, и выложить, на мой взгляд это самая лучшая реализация.

   
 
 автор: bronenos   (03.02.2007 в 22:59)   письмо автору
 
   для: школьник   (03.02.2007 в 22:48)
 

нет, не лучшая, я это за 5 минут написал, поверхностно
но спасибо за комплимент =)

   
 
 автор: bronenos   (03.02.2007 в 23:08)   письмо автору
 
   для: школьник   (03.02.2007 в 22:48)
 

Вообще лично мне наиболее удобна та навигация, которая занимает меньше места, поэтому в своих проектах я использую такой тип:
<script>
function gopage (num) {
 window.location = '?page='+num;
}
</script>
<?
print "<select onChange='gopage(this.value);'>";
for (
$i=1$i<=$total$i++)
 print 
"<option value='$i'>$i</option>";
print 
"</select>";
?>

   
 
 автор: школьник   (04.02.2007 в 12:38)   письмо автору
 
   для: bronenos   (03.02.2007 в 21:00)
 

Сделай $page = 10, посмотри что будет, нет центрирования в десятке, и невозможно попасть на 11 страницу.

Я понимаю так, активная страница которая больше 5 (тоесть половине 10), она должна центрироватся, а сейчас это происходит когда больше 10.

   
 
 автор: школьник   (04.02.2007 в 12:42)   письмо автору
 
   для: bronenos   (03.02.2007 в 21:00)
 

предлагаю добавить одну строчку перед циклом, чтобы не было нулевой страницы =)


 $i_start = ( (($area-1)*$perpage) ) ? (($area-1)*$perpage) : 1; // Добавил 
 for ($i=$i_start; $i<=($area*$perpage); $i++)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования