|
 49 Кб |
|
| Понимаю что тема избитая и меня сейчас тоже изобьют :) но попытаюсь задать вопрос.
Есть у меня такой код:
<?php
if ($page > 1) $show .= "<a href='index.php?page=1'> В начало </a> <a href='index.php?page=". ($page - 1) ."'> << </a>";
if ($page - 3 > 1) $show .= "<a href='index.php?page=1'> 1 </a>...";
if ($page - 3 > 0) $show .= "<a href='index.php?page=". ($page - 3) ."'> ". ($page - 3) ." </a>";
if ($page - 2 > 0) $show .= "<a href='index.php?page=". ($page - 2) ."'> ". ($page - 2) ." </a>";
if ($page - 1 > 0) $show .= "<a href='index.php?page=". ($page - 1) ."'> ". ($page - 1) ." </a>";
$show .= "<b>".$page."</b>";
if ($page + 1 <= $total) $show .= "<a href='index.php?page=". ($page + 1) ."'> ". ($page + 1) ." </a>";
if ($page + 2 <= $total) $show .= "<a href='index.php?page=". ($page + 2) ."'> " . ($page + 2) . " </a>";
if ($page + 3 <= $total) $show .= "<a href='index.php?page=". ($page + 3) ."'> " . ($page + 3) . " </a>";
if ($page + 4 <= $total) $show .= "...<a href='index.php?page=". $total ."'> " . $total . " </a>";
if ($page < $total) $show .= "<a href='index.php?page=". ($page + 1) ."'> >> </a><a href='index.php?page=". $total ."'> В конец </a>";
echo '<p>'.$show.'</p>';
?>
|
Проблема заключается в том, что при выводе навигации, между цифрами 1 и 2 вставляется многоточие, которое должно появляться только между 1 и 3. (На прикрепленном к сообщению снимке я показал эту ошибку)
Можно ли как-то исправить эту ошибку. | |
|
|
|
|
|
|
|
для: Alexo
(08.05.2011 в 22:07)
| | А вы разделите логику вывода постраничной навигации и троеточий - сразу станет проще
<?php
if ($page > 1) $show .= "<a href='index.php?page=1'> В начало </a> <a href='index.php?page=". ($page - 1) ."'> << </a>";
if ($page - 3 > 1) $show .= "<a href='index.php?page=1'> 1 </a>";
if ($page - 4 != 1) $show .= "...";
if ($page - 3 > 0) $show .= "<a href='index.php?page=". ($page - 3) ."'> ". ($page - 3) ." </a>";
if ($page - 2 > 0) $show .= "<a href='index.php?page=". ($page - 2) ."'> ". ($page - 2) ." </a>";
if ($page - 1 > 0) $show .= "<a href='index.php?page=". ($page - 1) ."'> ". ($page - 1) ." </a>";
$show .= "<b>".$page."</b>";
if ($page + 1 <= $total) $show .= "<a href='index.php?page=". ($page + 1) ."'> ". ($page + 1) ." </a>";
if ($page + 2 <= $total) $show .= "<a href='index.php?page=". ($page + 2) ."'> " . ($page + 2) . " </a>";
if ($page + 3 <= $total) $show .= "<a href='index.php?page=". ($page + 3) ."'> " . ($page + 3) . " </a>";
if ($page + 4 != $total) $show .= "...";
if ($page + 4 <= $total) $show .= "<a href='index.php?page=". $total ."'> " . $total . " </a>";
if ($page < $total) $show .= "<a href='index.php?page=". ($page + 1) ."'> >> </a><a href='index.php?page=". $total ."'> В конец </a>";
echo '<p>'.$show.'</p>';
?>
|
>и меня сейчас тоже изобьют :)
Этого можете не опасаться, тут приветствуется только конструктивный диалог, все остальное модераторы удаляют. | |
|
|
|
|
|
|
|
для: cheops
(08.05.2011 в 23:14)
| | Спасибо вам большое. Очень выручили.
>и меня сейчас тоже изобьют :)
Я просто прежде чем создавать тему, поискал на форуме темы, связанные с навигацией и увидел что их очень много. Полистал их и не найдя ответа, я решил задать очередной вопрос про навигацию.
Немного оффтопа: Спасибо вам за замечательные книги. Благодаря "Самоучителю PHP" я начал понимать этот язык программирования. После армии примусь за изучение книги "PHP. Практика создания Web-сайтов". | |
|
|
|