Навигация при большом количестве сраниц
Я начинающий в веб-программировании. Возникла такая проблема: имеется сайт с различными разделами. В каждом из них содержится около 30 страниц. Для перехода между страницами я использовал просто ссылки с нумерацией. Типа "1, 2, 3, 4, 5, 6". Занимает все 30 ссылок на страницы достаточно много места на экране. Хотелось бы сделать таким образом, например как в этом форуме список тем по страницам открывается. Например: "пред. 12, 13, 14, 15... след.". Типа того. Если кто может - напишите, как это сделать.
n - текущая страница, выбирается n+2, n-2 и выводится.
или же можно сделать при помощи <SELECT>
если что не ясно... милости просим...
function yandex_link_bar($page, $count, $pages_count, $show_link)
{
// $show_link - это количество отображаемых ссылок;
// нагляднее будет, когда это число будет парное
// Если страница всего одна, то вообще ничего не выводим
if ($pages_count == 1) return false;
$sperator = ' '; // Разделитель ссылок; например, вставить "|" между ссылками
// Для придания ссылкам стиля
$style = 'style="color: #808000; text-decoration: none;"';
$begin = $page - intval($show_link / 2);
unset($show_dots); // На всякий случай :)
// Сам постраничный вывод
// Если количество отображ. ссылок больше кол. страниц
if ($pages_count <= $show_link + 1) $show_dots = 'no';
// Вывод ссылки на первую страницу
if (($begin > 2) && ($pages_count - $show_link > 2)) {
echo '<a '.$style.' href='.$_server['php_self'].'?page=1> |< </a> ';
}
for ($j = 0; $j <= $show_link; $j++) // Основный цикл вывода ссылок
{
$i = $begin + $j; // Номер ссылки
// Если страница рядом с началом, то увеличить цикл для того,
// чтобы количество ссылок было постоянным
if ($i < 1) continue;
// Подобное находится в верхнем цикле
if (!isset($show_dots) && $begin > 1) {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.($i-1).'><b>...</b></a> ';
$show_dots = "no";
}
// Номер ссылки перевалил за возможное количество страниц
if ($i > $pages_count) break;
if ($i == $page) {
echo ' <a '.$style.' ><b>'.$i.'</b></a> ';
} else {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.$i.'>'.$i.'</a> ';
}
// Если номер ссылки не равен кол. страниц и это не последняя ссылка
if (($i != $pages_count) && ($j != $show_link)) echo $sperator;
// Вывод "..." в конце
if (($j == $show_link) && ($i < $pages_count)) {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.($i+1).'><b>...</b></a> ';
}
}
// Вывод ссылки на последнюю страницу
if ($begin + $show_link + 1 < $pages_count) {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.$pages_count.'> >| </a>';
}
return true;
} // Конец функции
// Подключение к базе данных
mysql_connect('localhost', 'root', '') or die('error! Нет соединения с сервером mysql!');
mysql_select_db('data_base') or die('error! Нет соединения с базой данных!');
// Подготовка к постраничному выводу
$perpage = 10; // Количество отображаемых данных из БД
if (empty($_get['page']) || ($_get['page'] <= 0)) {
$page = 1;
} else {
$page = (int) $_get['page']; // Считывание текущей страницы
}
// Общее количество информации
$count = mysql_numrows(mysql_query('select * from table')) or die('error! Записей не найдено!');
$pages_count = ceil($count / $perpage); // Количество страниц
// Если номер страницы оказался больше количества страниц
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД
// Вызов функции, для вывода ссылок на экран
yandex_link_bar($page, $count, $pages_count, 10);
// Вывод информации из базы данных
echo '<p><b>Постраничный вывод информации</b></p>';
$result = mysql_query('select * from table limit '.$start_pos.', '.$perpage) or die('error!');
while ($row = mysql_fetch_array($result)) {
echo '<p>'.$row['some_field'].'</p>';
}
?>
а можете написать пример?
Простите пожалуйста, но если уж вам "ОЧЕНЬ НАДО", то может быть раберетесь в том коде который вам дали и переведете его в код на Java?
по моему фраза "реализация на Java" означает, что при создании JavaScript'a будет использован язык Java. Если бы вопрос был поставлен неправильно тогда было б написано - "нужна Java" например. А так придираться к словам ненадо. Знаете, УМНИЧАТЬ, любой может, а вот реально помочь еденицы. А вот такие, которые кроме разговоров еще и реально что-тонаписать могут (как например NetWork), те и есть настоящие мастера! Мы не лингвисты и не философы, а программисты. Так что, будьте добры, соответсвовать. А если человек просит помощи, так это не значит, что к нему надо ТАК придираться
Перечить столько раз, сколько нужно до окончательного понимания:
http://phpclub.ru/talk/showthread.php?s=&threadid=50884&rand=2
Если реально осознал - извинись.
, бесспорно ты прав! Моя такая реакция объясняется некоторой нетактичностью со стороны других пользователей. Я считал так - раз я не разбираюсь, значит меня КОРРЕКТНО поправят без всяких там издевок, притом, что я написал, что начинающий во всем этом деле. Разве не так? Вообщем спор проехали. Я признаю, что немного загнул. Ну все таки может ли кто-то оформить что-то подомное в виде скрипта?
http://www.w3schools.com/js/default.asp
PS: и различие между Java и JavaScript