понедельник, 14 октября 2013 г.

Интерактив. Обмениваемся информацией с пользователем

До настоящего времени мы просто посылали браузеру пользователя информацию. Но иногда информацию необходимо и получать. Пришло время узнать, как получать данные от пользователя.

Элементы управления

Для ввода информации в HTML служат элементы управления, такие как поля ввода, переключатели и кнопки. Теги, описывающие эти элементы:

<!-- поле ввода текстовой информации -->
<input type=text name="user_name"></input>

<!-- Переключатель (множественный выбор) -->
<input type=checkbox name="prop">Я собираюсь создать АИС</input>


<!-- Переключать (одиночный выбор) -->
<input name=sex type=radio value="M" checked>Мужской</input>
<input name=sex type=radio value="W">Женский</input>


<!-- Кнопка -->
<input type"button">Нажми меня</button>

Это не все, а только основные, элементы управления предусмотренные HTML. В новом стандарте HTML5 их еще больше.
Попробуйте вставить эти элементы в новый HTML документ и протестировать их работу.

Подготовка к отправке данных на сервер. Формы


Для того, чтобы данные были приняты сервером, нам необходимо указать, какая страница их будет обрабатывать. Для этих целей элементы управления организуются в единый блок, который называется "форма". В параметре формы "action" прописывается, какой документ на сервере примет пользовательские данные. Страница, содержащая только разметку (html-документ) не сможет обработать данные.

<form action="handler.php">
...
</form>


Приступим. Попробуем поприветствовать пользователя, зашедшего на наш сайт по имени, которое он должен ввести на стартовой странице. Создайте html страницу по шаблону, описанному в посте о разметке веб-страницы.
В тело документа поместите форму и поле ввода текстовой информации. В параметре "action" пропишите имя нашего обработчика "primer5.php". Задайте имя для этого поля, например user_name.
Ввиду простоты примера не буду приводить его код. Попробуйте сами. Если не получится, отпишите в комментариях.
Все данные формы передаются нашей странице в виде массива с именем "$_REQUEST". Приводя простую абстракцию - массив - это сгруппированные переменные, которым определено одно имя. Чтобы получить содержимое, переданное в элементе управления с именем "имя переменной" нам нужно обратиться к элементу массива $_REQUEST['имя переменной']. То есть данные из 

<input type=text name="user_name"></input>
в файле "primer5.php" будут "лежать" в
$_REQUEST["user_name"];

Чтобы вывести имя пользователя на экран броузера в файле "primer5.php" нужно прописать:

<?php
echo $_REQUSET["user_name"];
?>

В качестве задания для самостоятельной работы предлагаю вам модифицировать пример из предыдущего поста с приветствием по времени суток.



7 комментариев:

  1. В открывающем теге кнопки ошибка не input, a button =)

    ОтветитьУдалить
  2. В принципе, правильно. Но попробуй в документ вставь
    input type="button" value="test"
    и посмотри, что получится (в <>, конечно)

    ОтветитьУдалить
  3. А в чем разница, если итог один?

    ОтветитьУдалить
  4. Вопрос поставил меня в тупик.

    ОтветитьУдалить
  5. Если в форме не указывать метод он по дефолту гет ставит? или метод нужно указывать обязательно... у меня лично не работало без метода....

    ОтветитьУдалить
  6. Да, по умолчанию используется "GET". Метод указывать не обязательно. Если убрать, то работает.
    "input" относится к непарным тегам. Его закрывать не нужно.

    ОтветитьУдалить