[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: paginator-помощь в нумерации страниц
datvid
Кто нибудь может помочь с нумерацией страниц.
При открытии первой страницы пагинатор правильно показывает что открыта первая ...
При открытии второй или другой пагинатор опять показывает что открыта первая страница .
Подскажите как сделать правильно что бы номера на пагинаторе менялись в соответствии
с реально открытыми страницами.

Пагинатор:


<? class pagination {
public $elements;
public $num = 10;
public $height = 5;

public function createLink() {
$page = !empty($_GET['page']) ? (int)$_GET['page'] : 1;
// Выясняем количество страниц
$total = ceil($this->elements / $this->num);
// Теперь проверяем чтобы переменная page не была меньше 1 и не больше последней страницы
if ($page < 1) $page = 1;
elseif ($page > $total) $page = $total;
// Для лимита в нашем запросе, подсчитываем первый оператор, который
// показывает с какой записи мы начинаем делать выборку

$start = ($page - 1) * $this->num;
$left = $page - $this->height;
if ($left < 1) $left = 1;
$right = $page + $this->height;
if ($right > $total) $right = $total;
// Выводим листинг
$return = '';
if ($page > 1) $return .= ' <a href="1.php">начало</a> . . . <a href="'. ($page - 1) .'.php"><<</a> ';
for ($i = $left; $i <= $right; ++$i)
{
if ($i != $page) $return .= ' <a href="'. $i .'.php">'. $i .'</a> ';
else $return .= ' <b>'. $i .'</b> ';
}
if ($page < $total) $return .= ' <a href="'. ($page + 1) .'.php">>></a> . . . <a href="'. $total .'.php">конец</a> ';
return $return;
}

}
?>




Спустя 9 минут, 29 секунд (6.07.2011 - 18:14) Игорь_Vasinsky написал(а):
а как ты определяешь, что ты именно на той или иной странице?

не вижу

if($page == $i) -то мы здесь (без ссылки)

Спустя 24 минуты, 6 секунд (6.07.2011 - 18:38) datvid написал(а):


if($page == $i) else $return .= ' <b>'. $i .'</b> ';

Вот так надо?

Спустя 3 минуты, 38 секунд (6.07.2011 - 18:41) Игорь_Vasinsky написал(а):
и страница на который ты сидишь - в навигации не будет уже ссылкой - а просто выделена жирным текстом


это добавать в цикл - сюда

for ($i = $left; $i <= $right; ++$i)
{
if ($i != $page) $return .= ' <a href="'. $i .'.php">'. $i .'</a> ';
else $return .= ' <b>'. $i .'</b> ';
}



ааааааааааа

вот где глюк

if ($i != $page) 

- одно равно - присваение
2 - сравнивание по значению
3-по значению и типу


исправь
if ($i !== $page) 


Спустя 13 минут, 4 секунды (6.07.2011 - 18:55) datvid написал(а):
Не помогло...
Как светилась единичка при открытии первой странички так и светиться при открытии второй...


// Выводим листинг
$return = '';
if ($page > 1) $return .= ' <a href="1.php">начало</a> . . . <a href="'. ($page - 1) .'.php"><<</a> ';
for ($i = $left; $i <= $right; ++$i)
{
if ($i !== $page) $return .= ' <a href="'. $i .'.php">'. $i .'</a> ';
else $return .= ' <b>'. $i .'</b> ';
}
if ($page < $total) $return .= ' <a href="'. ($page + 1) .'.php">>></a> . . . <a href="'. $total .'.php">конец</a> ';
return $return;
}

Спустя 1 минута, 30 секунд (6.07.2011 - 18:56) Игорь_Vasinsky написал(а):
покажи снова исправленный код

Спустя 52 секунды (6.07.2011 - 18:57) datvid написал(а):
Показал!!!

Спустя 14 минут, 39 секунд (6.07.2011 - 19:12) Игорь_Vasinsky написал(а):
;)

сделай вывод $i и $page

if ($i !== $page)  
{
$return .= ' <a href="'. $i .'.php">'. $i .'</a> ';
echo $i." - ".$page;
}
else
{
$return .= ' <b>'. $i .'</b> ';
}


посмотри значения

Спустя 2 минуты, 31 секунда (6.07.2011 - 19:14) datvid написал(а):
Не понял ...?



Спустя 1 минута, 42 секунды datvid написал(а):
Ну как не нашел ошибки?

Спустя 2 минуты, 3 секунды (6.07.2011 - 19:16) Игорь_Vasinsky написал(а):
обновил пост. глянь

и в конце вынеси из условия - return
Цитата
if ($page < $total) $return .=  ' <a href="'. ($page + 1) .'.php">>></a> . . . <a href="'. $total .'.php">конец</a> ';
  return $return;
  }


	if ($page < $total) $return .=  ' <a href="'. ($page + 1) .'.php">>></a> . . . <a href="'. $total .'.php">конец</a> ';	
}
return $return;



Спустя 2 минуты, 14 секунд (6.07.2011 - 19:18) datvid написал(а):
Спасибо тебе большое!!! Я сейчас срочно убегаю...Если возникнут вопросы еще здесь напишу часа через 2-а

Спустя 2 минуты, 16 секунд (6.07.2011 - 19:21) Игорь_Vasinsky написал(а):
я тока если завтра подключусь - если тема в зоне видимости будет

Спустя 2 часа, 8 минут, 45 секунд (6.07.2011 - 21:29) datvid написал(а):
К сожалению не получилось..!Что то не так в коде?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.