При открытии первой страницы пагинатор правильно показывает что открыта первая ...
При открытии второй или другой пагинатор опять показывает что открыта первая страница .
Подскажите как сделать правильно что бы номера на пагинаторе менялись в соответствии
с реально открытыми страницами.
Пагинатор:
<? 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) -то мы здесь (без ссылки)
не вижу
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 написал(а):
и страница на который ты сидишь - в навигации не будет уже ссылкой - а просто выделена жирным текстом
это добавать в цикл - сюда
ааааааааааа
вот где глюк
- одно равно - присваение
2 - сравнивание по значению
3-по значению и типу
исправь
это добавать в цикл - сюда
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
посмотри значения
сделай вывод $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 написал(а):
Ну как не нашел ошибки?
Спустя 1 минута, 42 секунды datvid написал(а):
Ну как не нашел ошибки?
Спустя 2 минуты, 3 секунды (6.07.2011 - 19:16) Игорь_Vasinsky написал(а):
обновил пост. глянь
и в конце вынеси из условия - return
и в конце вынеси из условия - 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 написал(а):
К сожалению не получилось..!Что то не так в коде?