Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 79
от 06.06.2005, 13:30

Администратор:Калашников О.А.
В номере:Вопросов: 1, Ответов: 1


Вопрос № 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 на обсуждение.


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.phpplus
Отписаться
Вспомнить пароль

В избранное