Понедельник
17-10-23, 07:22
"КОМП" от и до!
Приветствую Вас Гость | RSS
Главная Статьи Регистрация Вход
Меню сайта

Категории каталога
PHP [10]
Создание сайтов на PHP
Visual Studio.Net [5]
Среда разработки Visual Studio.Net

Наш опрос
Статьи по каким темам вам наиболее интересны?
Всего ответов: 250

Реклама

Главная » Статьи » Программирование » PHP

№5 РНР: ВЫБОРОЧНАЯ ЗАГРУЗКА

РНР: ВЫБОРОЧНАЯ ЗАГРУЗКА

В этой главе приведен пример простого PHP-сценария, используемого на реально существующем сайте.
Сайт www.harchikov.ru посвящен творчеству певца-барда Александра Харчикова. На сайте должны были быть представлены вышедшие альбомы певца в количестве 15 шт. и записи песен каждого альбома в МРЗ-формате. При создании сайта возникла необходимость обеспечить удобную навигацию. Общепринятый способ - ссылки на страницы с описанием каждого из альбомов и песнями из него - имел тот недостаток, что посетитель, желающий просмотреть не один альбом, а сразу несколько, был бы вынужден постоянно переходить со страницы на страницу, делая лишние усилия. Кроме того, в случае разрыва связи во время загрузки какого-либо файла посетитель, ушедший на другую страницу, был бы вынужден снова возвращаться на ту, с которой он этот файл загружать начал, тратя время на ее поиск. Недостаток другого варианта - размещения информации о всех альбомах на одной странице - ясен: размер этой страницы получ'ился бы очень большим, а интересная посетителю информация могла бы занимать лишь небольшую ее часть.
Поэтому было сделано так. На главной странице разместилась форма, а у каждого названия альбома - checkbox, внизу же страницы -кнопка перехода на список альбомов. Посетитель мог отметить заинтересовавшие его альбомы и после нажатия кнопки перехода PHP-сценарий выводил ему страницу с описаниями лишь тех альбомов, которые посетитель выбрал.
Чтобы добиться такого результата, всем checkbox'aM заглавной страницы сайта были присвоены имена: . Все эти checkbox'bi находятся в большой форме, параметром action которой является имя файла с программой на РНР, выводящей описания альбомов в соответствии с данными этой формы, а для передачи данных формы используется метод get (т. е. ее заголовок имеет вид

). Последнее приводит к тому, что в адресе страницы с выведенными описаниями альбомов присутствуют переменные т. е. если посетитель занесет этот адрес в "Избранное", то при последующих возвращениях на сайт по этой ссылке (например, для дальнейшей загрузки песен выбранных альбомов) ему не придется вновь выбирать альбомы на заглавной странице, как это было бы в случае использования метода post, не помещающего имена переменных и их значения в строку адреса (что, впрочем, выглядит красивее).

Кнопка, вызывающая переход на страницу, указанную в параметре action заголовка формы, должна иметь тип submit, например:

.

Загрузив заглавную страницу сайта www.harchikov.ru, можно легко изучить структуру расположенной на ней формы, что вы и сделайте, если описание вам непонятно.
В файле же albm.php (адрес именно этого файла указан в заголовке формы заглавной страницы) помещена простая программа, которая выглядит так:

if ($bar01==True) {include ( "bar01.php"); }
if ($bar02==True) {include ('bar02.php"); }
... по строке на каждый альбом...
?>

В файлах bar01.php, bar02.php и т. д. находятся описания альбомов и ссылки на МРЗ-файлы песен. Если checkbox с соответствующим именем был отмечен на заглавной странице, то переменная его имени оказывается равной True - именно это и проверяется в сценарии.
Удивительно, что этот простейший прием в настоящее время практически не применяется на сайтах Сети - используется традиционная схема размещения информации со множеством ссылок на отдельные разделы. А ведь как удобно - например, на сайте Харчикова можно выбрать альбомы, сгенерировать себе страницу со ссылками на песни из них и, заходя на нее, постепенно загружать песни или передать весь список ссылок на файлы в какую-нибудь из программ-"качалок". Или, скажем, на сайте фирмы "Экон-Профи" (http://www.econprofi.ru) точно так же сделан раздел "Вопросы и ответы" (рис.4.3) - отметив интересующие вопросы на странице раздела, можно получить подробные консультации исключительно по выбранным темам. Полученная страница и загрузится быстрее, да и при ее распечатке лишней бумаги тратить не потребуется.

Данную схему, разумеется, можно доработать. Опыт показывает, что посетители чаще всего предпочитают просмотреть либо два-три выбранных раздела, либо все разделы сразу. В последнем случае им придется отмечать все checkbox'bi страницы, что занимает время и силы. Поэтому стоит поместить на страницу еще и кнопку вывода сразу всех разделов - "Просмотреть все". Ей можно назначить гиперссылку с адресной строкой, содержащей все переменные в значении on, а можно немного доработать код РНР на странице-обработчике запроса, попросту добавив во все условия проверку значения еще одной, общей для всех условий переменной: if (($bar02==True) || ($all==True)) {... (напоминаю, что знак || означает "или"), и тогда гиперссылка может вести всего лишь на адрес albm.php?all=True.
Можно для решения той же задачи поместить на страницу пару сценариев на JavaScript, выполняющих соответственно отметку всех checkbox'oв и, наоборот, их очистку. Так что простор для творчества имеется, и немалый.

 

Категория: PHP | Добавил: kompot (08-01-24)
Просмотров: 621 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Поиск

Друзья сайта

Статистика


Copyright MyCorp © 2017