Вопрос № 21617: Доброго времени суток!
Уважаемые эксперты, есть одна проблема:
Есть динамическая страница на PHP, выводящая из базы проекты или товары по одному на лист и есть меню перехода на другие листы, которое выводится так:
========================...
Вопрос № 21.617
Доброго времени суток!
Уважаемые эксперты, есть одна проблема:
Есть динамическая страница на PHP, выводящая из базы проекты или товары по одному на лист и есть меню перехода на другие листы, которое выводится так:
========================================================================
$w=70;
for ($i=1; $i<=$w; $i++)
{
echo ' <a href='.$PHP_SELF.'?start='.($w-$i).'><b>'.$i.'</b></a>';
}
========================================================================
Так вот, это меню выводится в одну строку без ее перевода по достижении правого поля, а раздвигает поле, пока не будет выведено полностью (особенный облом при просмотре в броузере Opera7).
Я сделал так:
========================================================================
$w=70;
$w=70;
for ($i=1; $i<=$w; $i++)
{
if(($i%15)==0) echo ' <a href='.$PHP_SELF.'?start='.($w-$i).'><b>'.$i.'</b></a><br>';
else echo ' <a href='.$PHP_SELF.'?start='.($w-$i).'><b>'.$i.'</b></a>';
}
======================================================================
Мой вариант не "резиновый", а фиксированный, поэтому первая строка имеет пустое место справа, вторая уже сдвигает правое поле, кроме того вид не слишком эстетичный, всвязи с чем, есть вопросы.
Вопросы:
1. Как добиться перевода строки, чтобы при этом дизайн был "резиновым" или растяжимым.
2. Как сделать меню перехода на другие страницы такого вида:
назад 5 6 7 8 9 вперед
Заранее большое спасибо за серьезные ответы по существу.
Отправлен: 01.06.2005, 13:24
Вопрос задала: Radzilla (статус: Посетитель)
Всего ответов отправлено: 1
Отвечает: Сажин Владимир Сергеевич
Здравствуйте, Radzilla!
1) Насколько я понял, вам нужно выводить ссылки в виде равных колонок. Можно попробовать выводить ссылки в виде таблицы:
<table cellpadding=0 cellspacing=0>
<!-- Первая строка -->
<tr>
<td width=30><a href="#">1</a></td>
<td width=30><a href="#">2</a></td>
<td width=30><a href="#">3</a></td>
</tr>
<!-- Вторая строка -->
<tr>
<td width=30><a href="#">1</a></td>
<td width=30><a href="#">2</a></td>
<td width=30><a href="#">3</a></td>
</tr>
</table>
Теперь ссылки выводятся ровненькими колонками.
2) Нужно создать массив, содержащий по 5 ссылок. Если в качестве параметра передается число $n, то выводится элемент этого массива.
Если существует элемент массива $n-1, то выводится ссылка <a href="$PHP_SELF?n=$n-1">Назад</a>.
Если существует элемент массива $n+1, то выводится ссылка <a href="$PHP_SELF?n=$n+1">Вперед</a>.
Приложение:
Ответ отправил: Сажин Владимир Сергеевич (статус: 2-ой класс)
Отправлен: 01.06.2005, 22:58 Оценка за ответ: 4 Комментарий оценки: Ответ отличный, скорее всего это лучше, чем у меня, по крайней мере, с эстетической точки зрения. Однако Владимир Сергеевич не совсем правильно понял суть вопроса. Мне нужно, чтобы скрипт определял количество свободного места до правой стороны страницы и не сдвигал ее вправо до тех пор, пока не будут выведены все номера страниц. Приведенный ответ дает
возможность сделать более эстетичный вывод (за что большо спасибо автору ответа), но не решает суть проблемы. Этот вариант вывода все равно статичен, а у разных пользователей количество свободного места на страинице может быть разным (диагональ монитора и разрешение). У меня страница состоит из трех блоков: левый и правый - фиксированной ширины, по 150 пикселей, а середина должна быть резиновой. Поэтому и нужен резиновый вариант вывода меню ссылок (например, по 15 и
ли по 20) в одной строке. То есть выбор между: назад 5 6 7 8 9 вперед (5 значений посередине) или назад 5 6 7 8 9 10 11 вперед (7 значений посередине) Прошу снова вынести вопрос № 21617 на обсуждение.