
- •Основы создания информационных ресурсов на языке рнр методические указания
- •Содержание
- •Цель работы
- •1 Общие положения
- •1.1 Основы синтаксиса
- •1.2 Переменные. Константы
- •1.3 Операторы
- •1.4 Типы данных
- •1.4.1 Тип array (массив)
- •1.5 Условные операторы
- •1.5.1 Оператор if
- •If (выражение) блок_выполнения
- •If (выражение) блок_выполнения else блок_выполнения1
- •If (выражение) блок_выполнения;
- •1.5.2 Оператор switch
- •Do {блок_выполнения} while (выражение);
- •For (выражение1;выражение2;выражение3) {блок_выполнения}
- •1.7 Операторы передачи управления
- •1.8 Операторы включения
- •1.9 Формы в html-документах
- •1.10 Тег form – контейнер форм
- •1.11.5 Зависимые переключатели
- •1.11.6 Кнопка отправки формы
- •1.13 Списки выбора. Тег select
- •1.13.1 Списки с единственным выбором
- •1.13.2 Списки множественного выбора
- •1.14 Обработка запросов с помощью рнр
- •2 Задание
- •2.1 Вывод на экран и переменные в рнр.
- •2.2 Работа с условными операторами и операторами цикла в рнр.
- •2.3 Передача параметров по ссылке, передача параметров из формы.
- •2.4 Создание формы для обработки заказов электронного магазина
- •3 Требования к отчету
- •4 Контрольные вопросы
1.13 Списки выбора. Тег select
1.13.1 Списки с единственным выбором
Довольно часто нам нужно представить какие-нибудь данные в виде списка и предусмотреть возможность выбора в этом списке. В HTML это реализуется в виде списков выбора, создавать которые можно с помощью тега SELECT. Список выбора позволяет выбрать один вариант из множества.
<select name="variants">
<option value="1">Вариант1</option>
<option value="2">Вариант 2</option>
<option value="etc">и т.д.</option>
</select>
Варианты выбора задаются с помощью тегов option. При отправке формы сценарию будет отослано значение value выбранного элемента списка.
Если атрибут size равен 1, то список будет выпадающим. В противном случае список будет занимать n строк и будет «оснащен» полосoй прокрутки. Значение, выбранное в списке по умолчанию, можно указать с помощью атрибута selected для соответствующего тега option. Атрибут value является необязательным. Если его не указать, то будет передана строка, заключенная в тег option.
1.13.2 Списки множественного выбора
С помощью тега SELECT можно создавать и списки множественного выбора. В таких списках можно выбрать не одно, а сразу несколько значений. Чтобы сделать список с множественным выбором, необходимо для тега SELECT указать атрибут multiple. Если пользователь выберет несколько вариантов, то сценарию будут переданы параметры в форме:
имя=значение&имя=значение...&имя=значение
1.14 Обработка запросов с помощью рнр
Внутри PHP-скрипта существует несколько способов получения доступа к данным, переданным клиентом по протоколу http. До версии РНР 4.1.0 доступ к таким данным осуществлялся по именам переданных переменных. Таким образом, если, например, было передано first_name=Nina, то внутри скрипта появлялась переменная $first_name со значением Nina. Если требовалось различать, каким методом были переданы данные, то использовались ассоциативные массивы $HTTP_POST_VARS и $HTTP_GET_VARS, ключами которых являлись имена переданных переменных, а значениями — соответственно значения этих переменных. Таким образом, если пара first_name=Nina передана методом GET, то $HTTP_GET_VARS ["first_name"] ="Nina".
Использовать в программе имена переданных переменных напрямую небезопасно. Поэтому было решено начиная с РНР 4.1.0 задействовать для обращения к переменным, переданным с помощью HTTP-запросов, специальный массив - $_REQUEST. Этот массив содержит данные, переданные методами POST и GET, а также с помощью HTTP cookies. Это суперглобальный ассоциативный массив, т.е. его значения можно получить в любом месте программы, используя в качестве ключа имя соответствующей переменной (элемента формы).
Допустим, мы создали форму для регистрации участников заочной школы программирования. Тогда в файле 1.php, обрабатывающем эту форму, можно написать следующее:
<?
$str="Здравствуйте, $_REQUEST[first_name] .$_REQUEST[last_name]! <br>";
$str. = "Вы выбрали для изучения курс по $_REQUEST[kurs]”;
echo $str;
?>
Тогда, если в форму мы ввели имя «Вася», фамилию «Петров» и выбрали среди всех курсов курс по РНР, на экране браузера получим такое сообщение:
Здравствуйте, Вася Петров!
Вы выбрали для изучения курс по РНР
После введения массива $_REQUEST массивы $HTTP_POST_VARS и $HTTP_GET_VARS для однородности были переименованы в $_POST и $_GET соответственно, но сами они из обихода не исчезли из соображений совместимости с предыдущими версиями РНР. В отличие от своих предшественников, массивы $_POST и $_GET стали суперглобальными.
Приведем пример использования этих массивов. Допустим, нам нужно обработать форму, содержащую элементы ввода с именами first_name, last_name, kurs (например, форму form.html, приведенную выше). Данные были переданы методом POST, и данные, переданные другими методами, мы обрабатывать не хотим. Это можно сделать следующим образом:
<?php
$str = "Здравствуйте, ".$_POST["first_name"]." ".$_POST["last_name"]."! <br>";
$str.= "Вы выбрали для изучения курс по ". $_POST["kurs"] ;
echo $str;
?>