Приднестровская поддержка XOOPS
Навигация при выборе значения из списка
Для досрочного завершения PHP-сценария используется оператор exit:
exit;
exit([<Сообщение>]);
Предположим, наш сайт содержит четыре страницы: index.php (главная страница), firma.php (о фирме), price.php (продукция) и contact.php (контактная информация). Реализуем механизм навигации по сайту. Переход на другие страницы будет осуществляться не с помощью ссылок, а путем выбора нужной страницы из списка. Для этого на всех страницах сайта должна присутствовать форма, описанная в листинге 36.
Листинг 36. Навигация по сайту с помощью списка
<form action="go.php">
<select name="page">
<option value="0" selected>На главную</option>
<option value="1">О фирме</option>
<option value="2">Продукция</option>
<option value="3">Контакты</option>
</select>
<input type="submit" value="Go!">
</form>
Далее создаем файл go.php с кодом, приведенным в листинге 37.
Листинг 37. Содержимое файла go.php
<?php
if (isset($_GET['page'])) {
switch($_GET['page']) {
case '1':
header('Location: firma.php'); exit();
case '2':
header('Location: price.php'); exit();
case '3':
header('Location: contact.php'); exit();
default:
header('Location: index.php'); exit();
}
}
else {
header('Location: index.php'); exit();
}
?>
Теперь при выборе страницы из списка и нажатии кнопки Go! мы попадем на нужную страницу. Обратите внимание, что вместо оператора break мы использовали оператор exit, так как после перехода на нужную страницу выполнение остального кода просто лишено смысла.
Так как функция header() устанавливает заголовки ответа сервера, то кроме указанного кода в файле go.php не должно быть никаких операторов вывода. Даже пустая строка перед открывающим PHP-дескриптором (<?php) вызовет ошибку. Пустые строки внутри PHP-дескрипторов ошибку не генерируют, так как вывод информации осуществляется только с помощью операторов echo или print. Кроме того, если используется кодировка UTF-8, то файл должен быть сохранен в кодировке UTF-8 без BOM.
Отправитель | Нити |
---|
8 пользователь(ей) активно (6 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 8 далее... |