Верный способ создания многострочного текстового поля. Формы в HTML. HTML-тег textarea: Многострочный текст

Прочие модели 12.04.2019
Прочие модели

Приветствую Вас, уважаемые посетители сайт! Данным постом я хочу продолжить серию уроков под названием «Путь веб-мастера». Для того, чтобы все было понятно в последующих уроках, нужно сначала освоить предыдущие, а именно — и . После изучения html и css нам нужно как-то использовать их в создании сайта. Поэтому следующим нашим шагом будет.

Что такое ? Верстка сайта — это процесс создания веб-страницы по готовому макету. Обычно в качестве макета используется графический шаблон, созданный в программе Adobe Photoshop, он называется PSD (PhotoShop Document) шаблоном. Процесс верстки включает в себя создание кода страницы при помощи понятного браузерам языка разметки гипертекста (html), и оформление её с помощью каскадных таблиц стилей (CSS).
Существует два способа верстки страниц:

  • Табличная (В качестве структурной основы для расположения графических и текстовых элементов документа используют таблицы.)
  • Блочная (верстка слоями, дивами).

Мы будем применять как раз таки блочную верстку. Блоком можно назвать все видимые элементы, которые задают структуру документа.

Слоем называется так же структурный элемент, к которому применяются какие-то стили css. Поэтому, в принципе, слоем можно назвать и таблицу, и абзац и тд. Но, чтобы не было путаницы, принято слоем называть тег

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

Но при этом не нужно злоупотреблять данным тегом. Списки оформляются тегом

    или
      , таблицы — , заголовки и так далее. Здесь уже речь идет о «семантической верстке».

      Семантика — это тема отдельной статьи, пока лишь скажу, что семантическая верстка — это верстка при которой все элементы html кода несут структурный смысл. То есть не нужно, к примеру, заключать заголовки в тег

      и оформлять их с помощью css. Для заголовков в html есть специальный тег , его и нужно использовать.

      Вернемся снова к нашим блокам. Любой блочный элемент состоит из набора накладываемых друг на друга свойств, об этом я рассказывал в уроке — .

      При блочной верстке практически всегда применяется позиционирование, эту тем можете повторить в уроке — .

      Если что-то пока кажется не совсем понятным — не расстраивайтесь, все будет подробнее объяснено на практике, в видео уроках.
      И в конце хочу немного забежать вперед и наметить план будущих .

      В ближайших уроках мы с Вами на практическом примере сверстаем html макет сайта из PSD исходника. В процессе верстки я постараюсь объяснить различные приемы верстки, покажу как исправлять ошибки.

      После того как макет будет сверстан мы будем кодировать его в WordPress шаблон. Это будет как бы небольшой мини-курс по созданию шаблонов для WordPress. В процессе нужно будет так же изучить основы PHP, так как движок WordPress написан именно на нем. Следовательно будут и уроки по PHP.

      Так что впереди много интересной работы, до встречи!

      Данный элемент формы предназначен для создания области, в которой можно вводить несколько строк текста. В таком текстовом поле допустимо делать переносы строк, они сохраняются при отправке данных на сервер.

      Поле для многострочного текста незаменимо для добавления комментариев к статьям, написания сообщений форума, вставки и редактирования постов в блоге и во многих других случаях, когда одной строки текста явно недостаточно.

      Синтаксис создания поля следующий.

      Между тегов можно поместить любой текст, который будет отображаться внутри поля. Если текста нет, то поле будет изначально пустым.

      Допустимые атрибуты перечислены в табл. 1.

      Табл. 1. Атрибуты

      Результат примера показан на рис. 1.

      Рис. 1. Вид текстового поля по умолчанию

      Для

      Результат данного примера показан на рис. 2. Обратите внимание, что учитываются все пробелы и переносы строк внутри

      Если содержимое поля превысит его размеры - появится бегунок.

      Пример использования формы

      Теперь давайте посмотрим: как работает форма.

      Форма заказа обучающего видеоматериала:


      Ваше имя: *



      Ваш заказ:



      Выберите носитель:


      CD


      DVD


      USB Flash


      Ваш E-mail: *



      Ваш адрес: *





      Многострочное поле ввода текста позволяет отправлять не одну строку, а сразу несколько. По умолчанию тег создает пустое поле шириной в 20 символов и состоящее из двух строк.

      Многострочное поле ввода текста начинается с парных тегов . Тэг name задает имя многострочного поля. Также можно указать ширину поля(cols ) и число строк(rows ). При необходимости можно указать атрибут readonly, который запрещает редактировать, удалять и изменять текст, т.е. текст будет предназначен только для чтения. Если необходимо чтобы текст был изначально отображен в многострочном поле ввода, то его необходимо поместить между тэгами .

      Скрытое текстовое поле

      Позволяет передавать сценарию какую то служебную информацию, не отображая её на странице.

      Скрытое поле начинается с тега , атрибуты которого являются name , type и value . Атрибут name задает имя поля, type определяет тип поля, а атрибут value задает значение поля.

      Кнопка отправки формы (submit)

      Служит для отправки формы сценарию.

      При создании кнопки для отправки формы необходимо указать 2 атрибута: type=“submit” и value=”Текст кнопки” . Атрибут name необходим если кнопка не одна, а несколько и все они созданы для разных операций, например кнопки "Сохранить", "Удалить", "Редактировать" и т.д. После нажатия на кнопку сценарию передается строка имя=текст кнопки .

      Кнопка для загрузки файлов (browse)

      Служит для реализации загрузки файлов на сервер. Объект browse начитается с парных тегов
      . Начинающий тэг
      содержит необходимый атрибут encrypt. Атрибут encrypt принимает значение multipart/form-data , который извещает сервер о том, что вместе с обычной информацией посылается и файл. При создании текстового поля также необходимо указать тип файла – “file ”.




      Загрузить файл:

      Рамка (fieldset)

      Объект fieldset позволяет вам нарисовать рамку вокруг объектов. Имеет закрывающий тэг . Заголовок указывается в тэгах . Основное назначение объекта – задавание различных стилей оформления.


      Программное обеспечение(заголовок рамки)
      Текст, который будет помещен внутри рамки.

      Обработка форм

      Все данные, которые вы хотите получить из HTML-формы в PHP сценарий обрабатываются с помощью суперглобальных массивов $_POST или $_GET , в зависимости от указанного в атрибуте method метода передачи данных.

      Задача: Вам необходимо получить данные из текстового поля и многострочного поля ввода и передать их сценарию.
      Решение: Необходимо создать HTML форму и PHP – сценарий для обработки формы.

      Обсуждение:

      Создадим два файла: form.html и action.php . В файле form.html будет содержаться html-форма с текстовым полем mytext и текстовой областью msg :





      В этой html-форме нас интересует 3 атрибута: action который указывает путь к обработчику формы, имя текстового поля (mytext ) и имя многострочного поля вода (msg ). Также в форме присутствует кнопка, при нажатии на которую происходит передача данных.

      После того как html-форма готова нам необходимо создать обработчик формы action.php :

      $text = $_POST["mytext"];
      $msg = $_POST["mytext"];
      echo $text;
      echo "";
      echo $msg;
      ?>

      После того как мы введем любые значение в текстовые поля и нажмем на кнопку "Отправить данные " html-форма отправить значения сценарию action.php .
      После этого в переменных $text и $msg будут содержаться значения текстового поля и многострочного поля ввода соответственно, значения которых взяты из суперглобальных переменных $_POST .

      Если вы хотите, чтобы в многострочном текстовом поле соблюдалось html-форматирование, то используйте функцию nl2br():

      $text = nl2br($_POST["mytext"]);
      ?>

      Задача: Пусть необходимо создать выпадающий список с годами с 2000 по 2050.
      Решение: Необходимо создать HTML форму c элементом SELECT и PHP – сценарий для обработки формы.

      Обсуждение:

      Для начала создадим два файла: form.html и action.php . В файле form.html будет содержаться html-форма с выпадающим списком. Причем значения в списке можно указать двумя способами:

      I. Ввод данных вручную:

      II. Ввод данных через цикл:

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

      Описание:

      Создадим HTML-форму для отправки файла на сервер.




      В данной html-форме присутствует элемент browse , который открывает диалоговое окно для выбора файла для загрузки на сервер. При нажатии на кнопку "Передать файл" , файл передается сценарию-обработчику.

      Затем необходимо написать сценарий обработчик action.php . Перед написание обработчика необходимо определиться в какой каталог мы будет копировать файл:

      if(isset($_FILES["myfile"])) // Если файл существует
      {
      $catalog = "../image/"; // Наш каталог
      if (is_dir($catalog)) // Если такой каталог есть
      {
      $myfile = $_FILES["myfile"]["tmp_name"]; // Времменый файл
      $myfile_name = $_FILES["myfile"]["name"]; // Имя файла
      if(!copy($myfile, $catalog)) echo "Ошибка при копировании файла ".$myfile_name // Если неудалось скопировать файл
      }
      else mkdir("../image/"); // Если такого каталога нет, то мы его создадим
      }
      ?>

      Замечание

      Если вы доверяете пользователям закачивать на ваш сервер любые файлы, нужно быть предельно осторожным. Злоумышленники могут внедрить «нехороший» код в картинку или файл и отправить на сервер. В таких случаях нужно жестоко контролировать загрузку файлов.

      Данный пример демонстрирует создание каталога и копирование файла в этот каталог на сервер.

      Также хотел бы продемонстрировать пример с элементом checkbox . Этот элемент немного отличается от других элементов тем, что если не один из элементов checkbox ’a не выбран, то суперглобальная переменная $_POST вернет пустое значение:


      Синий
      Черный
      Белый

      if (!empty($_POST["mycolor"])) echo $_POST["mycolor"]; // Если выбран хоть 1 элемент
      else echo "Выберите значение";
      ?>



      Рекомендуем почитать

      Наверх