|
| |
|
|
| |
для: XPraptor
(06.05.2006 в 11:38)
| | | Все отлично работает , только вот сдесь недочет. я сделал так
//ссылка на следующий десяток
print "<a href=\"http://www.bla.com/page.php?pagenumber=" . ($i * 10-4) . "\">следующие 10 страниц >></a>";
|
| |
| |
|
|
| |
|
|
| |
для: XPraptor
(06.05.2006 в 11:38)
| | | Спасибо за помощь. | |
| |
|
|
| |
|
|
| |
для: technic611
(06.05.2006 в 10:39)
| | | Необходимо вывести 10 страниц текущей десятки и если есть десятка слева или справа, то вывести ссылки на следующую (предыдущую) десятку. Для этого как минимум надо определить сколько страниц вообще. Потом определить в какой десятке находится сейчас пользователь и на какой конкретно странице этой десятки, и потом сформировать с учетом этого ссылки.
//$cur_page - это страница, на которой будет сейчас пользователь;
//навигатор сразу печатается в то место, где вставлена эта функция. Но можно изменить и собрать код в переменную и вернуть ее из функции, а потом где угодно печатать на странице.
function create_page_navigator($cur_page=1){
/*
$rez=mysql_query("SELECT COUNT(*) AS count_all FROM TableName WHERE условие по которому выбираются записи");
$row=mysql_fetch_object($rez);
//вот столько записей у нас всего вернулось
$count_all_records=$row->count_all;
mysql_free_result($rez);
*/
//это для теста без базы данных, сразу скажем что у нас есть 234 записи. Потом убрать и использовать код выше
$count_all_records=234;
//сколько страниц всего можно сделать из этих записей (считаем что по 10 записей на странице, можно изменить циферку)
if(floor($count_all_records / 10) == ($count_all_records / 10)){
$cnt_all_pages=$count_all_records / 10;
}else{
//если есть остаток от деления, то на одну страницу больше, там будет не десять, а оставшееся кол-во записей
$cnt_all_pages=floor($count_all_records / 10) + 1;
}
//сколько всего десятков есть у нас
if(floor($cnt_all_pages / 10) == ($cnt_all_pages / 10)){
$all_intervals=$cnt_all_pages / 10;
}else{
//если есть остаток от деления, то на один интервал больше
$all_intervals=floor($cnt_all_pages / 10) + 1;
}
//теперь в зависимости на какой странице ($cur_page) сейчас пользователь, выводим тот десяток ($cur_interval)
if(floor($cur_page / 10) == ($cur_page / 10)){
$cur_interval=$cur_page / 10;
}else{
$cur_interval=floor($cur_page / 10) + 1;
}
//выводим ссылки на предыдущий (следующий) десятки и десять текущих страниц
for($i=1; $i<=$all_intervals; $i++){
if($i == ($cur_interval - 1)){
//ссылка на предыдущий десяток
print "<a href=\"http://www.bla.com/page.php?pagenumber=" . ($i * 10) . "\"><< предыдущие 10 страниц</a> ";
}elseif($i == $cur_interval){
//ссылки текущего десятка
for($j=(($i-1) * 10 + 1); $j<=($i * 10) && $j<=$cnt_all_pages; $j++){
if($j == $cur_page){
//если эта та страница на которой сейчас юзер, можно ее подсветить как нить
print "<a style=\"color:red\" href=\"http://www.bla.com/page.php?pagenumber=" . $j . "\">" . $j . "</a> ";
}else{
print "<a href=\"http://www.bla.com/page.php?pagenumber=" . $j . "\">" . $j . "</a> ";
}
}
}elseif($i == ($cur_interval + 1)){
//ссылка на следующий десяток
print "<a href=\"http://www.bla.com/page.php?pagenumber=" . ($i * 10) . "\">следующие 10 страниц >></a>";
break;
}elseif($i > ($cur_interval + 1)){
break;
}
}
}
|
Млина, в блокноте пишу, даже синтаксис на опечатки проверить не могу, потому, как нету тут на работе ничего под рукой.
Но надеюсь все будет работать, я такой код должен без ошибок писать иначе застрелюсь пойду.
[поправлено модератором] | |
| |
|
|
| |
|
|
| |
для: cheops
(06.05.2006 в 09:42)
| | | Все нашел, эта такая же навигация как на форуме, только кое-что изменить надо. спасибо | |
| |
|
|
| |
|
|
| |
для: technic611
(06.05.2006 в 09:15)
| | | Напротив, примеров тем, посвящённых постраничной навигации очень много. Искать следует примерно по такому запросу. Но начать знакомство лучше с примера
http://www.softtime.ru/scripts/pager.php
и статьи
http://www.softtime.ru/info/articlephp.php?id_article=33 | |
| |
|
|
| |
|
|
| | Кто нибудь знает как такой вид навигации сделать. Ничего подобного на форуме не нашел
1 2 3 4 5 6 7 8 9 10 Следующие 10 страниц | |
| |
|
|
|