Створення HTML форм. HTML форми Html form post приклади

Створення HTML форм. HTML форми Html form post приклади

Форми призначені для пересилання даних від користувача до веб-сервера. Форми в HTML можуть складатися з текстових полів і текстових областей, прапорців і перемикачів, а також списків, що розкриваються. Все це - елементи форми. Кожен елемент служить для того, щоб передати якесь значення сайту.
За своєю суттю HTML-форма - це веб-сторінка на якій ви бачите області для введення своєї інформації. Після того, як ви заповните форму і натиснете кнопку відправити, інформація з форми упаковується і відсилається веб-сервера для обробки серверним сценарієм (файлом-обробником). Після обробки до вас повертається в якості відповіді інша веб-сторінка. Наступний малюнок наочно демонструє як працює форма:

Немає нічого складного в створенні HTML-форм. Найпростіший спосіб отримати уявлення про форми - це розібрати невеликий HTML-код, а потім подивитися, як він працює. У наступному прикладі показаний синтаксис створення простої HTML-форми:

Приклад: Проста HTML-форма

  • Спробуй сам »

Моя перша форма:
ім'я:
Прізвище:



проста форма

Моя перша форма:
ім'я:
Прізвище:


елемент

Форми вставляються на веб-сторінки за допомогою елемента . Він являє собою контейнер для всього вмісту форми, включаючи такі елементи, як текстові поля і кнопки, а також будь-які інші теги мови HTML. Однак він не може містити в собі інший елемент .
Для відправки форми на сервер використовується кнопка «Submit», того ж результат вийде, якщо натиснути клавішу «Enter» в межах форми. Якщо кнопка «Submit» відсутня в формі, клавіша «Enter» може бути використана для відправки.
Більшість атрибутів елемента впливають на обробку форми, а не на її дизайн. Найбільш поширеними з яких є action і method. Атрибут action містить URL, на який інформація у формі буде відправлена \u200b\u200bдля обробки сервером. Атрибут method є методом HTTP, який повинні використовувати браузери для відправки даних форми.

елемент

Практично всі поля для форми створюється за допомогою елементу (Від англ. Input - введення). Зовнішній вигляд елемента змінюються в залежності від значення його атрибуту type:

Ось деякі значення атрибута type:

Введення тексту і пароля

Одним з найпростіших типів елементів форми є текстове поле, призначене для введення тексту з одного рядка. Даний тип введення тексту встановлений за замовчуванням, а отже, саме однорядкове поле відобразиться, якщо ви забудете вказати атрибут type. Для додавання однострочного поля введення тексту в форму слід всередині елемента прописати атрибут type зі значенням text:

Поле введення пароля є різновидом звичайного текстового поля. Воно підтримує ті ж атрибути, що і однорядкове текстове поле. Атрибут name встановлює ім'я поля введення пароля, яке буде відправлено на сервер разом з паролем, введеним користувачем. Щоб створити поле для введення пароля, необхідно задати значення password атрибуту type (Password (англ.) - пароль):

Приклад створення форми з полем для введення пароля:

Приклад: Поле введення пароля

  • Спробуй сам »

Ваш логін:

пароль:




Ваш логін:

пароль:


Разом з цим атрибутом можна використовувати атрибут maxlenght, Значення якого визначає максимальну кількість символів, які можна ввести до цього рядка. Можна також задати довжину поля введення, використовуючи атрибут size. За замовчуванням, в більшості браузерів ширина текстового поля обмежена 20 символами. Для управління шириною елементів нових форм, замість атрибута size, Рекомендується використовувати засоби каскадних таблиць стилів (CSS).
Атрибут value задає значення, яке за замовчуванням відображається в текстовому полі в момент завантаження форми. Ввівши в поле значення за замовчуванням, можна пояснити користувачеві, які саме дані і в якому форматі ви хочете, щоб користувач сюди заніс. Це як зразок, адже користувачеві набагато зручніше заповнювати форму, бачачи перед собою приклад.

Перемикачі (radio)

елемент типу radio створює перемикачі, які використовують принцип логічного «АБО», дозволяючи вибрати тільки одне з декількох значень: якщо ви вибираєте одне положення, то всі інші стають неактивними. Основний синтаксис елемента-перемикача:

Атрибут name для перемикачів обов'язковий і грає важливу роль в об'єднанні кількох елементів-перемикачів в групу. Для об'єднання перемикачів в групу необхідно встановити однакове значення атрибуту name і різне значення атрибута value. Атрибут vаluе встановлює значення обраного перемикача, яке буде відправлено сервера. Значення кожного елемента-перемикача має бути унікальним всередині групи, для того, щоб сервер знав, який варіант відповіді вибрав користувач.
наявність атрибута checked (З англ. - встановлено) у елемента-перемикача вказує на те, який з пропонованих варіантів повинен бути обраний за замовчуванням при завантаженні сторінки, якщо це необхідно. Даний атрибут може бути встановлений тільки у одного елемента-перемикача з групи:

  • Спробуй сам »

Скільки вам років?

  1. молодше 18
  2. від 18 до 24
  3. від 25 до 35
  4. більше 35




Скільки вам років?

  1. молодше 18
  2. від 18 до 24
  3. від 25 до 35
  4. більше 35

Прапорці (checkbox)

елемент типу checkbox створює прапорці, які нагадують перемикачі тим, що дають користувачеві можливість вибирати із запропонованих вами варіантів. Головною відмінністю від перемикачів є те, що відвідувач може вибрати відразу кілька варіантів, а самі прапорці позначаються квадратиками, а не кружечками. Як і у випадку з перемикачами, група прапорців створюється шляхом призначення кожного пункту одного і того ж значення атрибута name, Однак кожен прапорець має власне значення. Основний синтаксис прапорця:

Атрибут checked, Як і в випадку з перемикачами, вказує, що даний прапорець повинен бути встановлений за замовчуванням при завантаженні сторінки. Даний атрибут може бути встановлений одночасно для декількох прапорців групи.
У наступному прикладі використання прапорців задані кілька обраних за замовчуванням варіантів відповіді:

Приклад: Використання перемикачів

  • Спробуй сам »
  1. джаз
  2. Блюз
  3. рок
  4. шансон
  5. кантрі




Які музичні жанри Ви любите?

  1. джаз
  2. Блюз
  3. рок
  4. шансон
  5. кантрі

Кнопки підтвердження (submit) і очищення (reset)

елемент типу submit створює кнопку, при натисканні якої відбувається відправка браузером серверного сценарію на обробку даних, введених користувачем в форму. Якщо створюємо кнопку, очищувальну форму, то присвоюємо атрибуту type значення «reset». елементу типу submit може бути присвоєно необов'язковий атрибут name. Атрибут vаluе використовується в даному елементі для вказівки тексту, що позначає напис на кнопці. За замовчуванням в браузерах на кнопці пишеться «Надіслати» (Submit), якщо вас дана напис не влаштовує - введіть її самостійно. Оскільки в різних браузерах стилі кнопок підтвердження можуть відрізнятися, тому краще самостійно налаштувати стиль кнопки, скориставшись засобами CSS або використовувати графічні кнопки.
Створення кнопок підтвердження і очищення:

Приклад: Використання submit і reset

  • Спробуй сам »

Після клацання на кнопці Reset відбувається скидання будь-яких введених користувачем даних.





Атрибут action.

Головним для елемента

є атрибут action, Який вказує обробник даних для форми. Оброблювач даних - це файл, що описує, що потрібно робити з даними форми. Як результат цієї обробки видається нова HTML-сторінка, яка повертається браузеру. Іншими словами в атрибуті action вказується URL-шлях до файлу-обробника на сервері (іноді званого сторінкою сценарію) для обробки форми. Синтаксис наступний:

Файл обробки знаходиться на сервері mytestserver.com в папці namefolder і назва серверного сценарію, який буде обробляти дані - obrabotchik.php. Саме йому і будуть передані всі дані, введені вами в форму на веб-сторінці. Расшіреніе.php вказує на те, що зазначена форма обробляється сценарієм написаному на мові PHР. Сам обробник може бути написаний на іншій мові, наприклад це може бути мова сценаріїв Python, Ruby і ін.
Бажано завжди задавати значення атрибута action. Якщо форма повинна передати значення на ту ж сторінку, де вона розташована в якості значення атрибута action вкажіть порожній рядок: action \u003d "".

Атрибут method

Атрибут method задає те, яким чином інформація повинна бути передана на сервер. Вибір методу відправки форми залежить від даних, які необхідно відправити разом з нею. Тут основну роль відіграє обсяг цих даних. Найбільш популярними є два методи передачі вихідних даних вашої форми з браузера на сервер: GET і POST. Метод встановлюється будь на вибір, і якщо ви його не вказали, за замовчуванням буде використовуватися GET. Розглянемо застосування кожного з них.

метод POST

метод POST упаковує дані форми і відсилає їх сервера непомітно для користувача, оскільки дані містяться в тексті листа. Веб-браузер, при використанні методу POST відправляє на сервер запит, що складається зі спеціальних заголовків за якими слідують дані форми. Так як вміст цього запиту є тільки сервера, метод POST застосовується для передачі конфіденційних даних, таких як паролі, реквізити банківських карт і інша персональна інформація користувачів. метод POST також підходить для відправки великих обсягів інформації, так як на відміну від методу GET, У нього немає обмежень по кількості переданих символів.

метод GET

Як ви вже знаєте основна робота браузера - це отримувати веб-сторінки від сервера. Так ось, коли ви використовуєте метод GET, Ваш браузер просто отримує веб-сторінку, як робить це завжди. метод GET також упаковує дані форми, але, перш ніж відправити запит серверу, приєднує їх в кінець URL-адреси. Щоб зрозуміти, як працює метод GET, Давайте подивимося його в дії. Відкрийте в блокноті (наприклад Notepad ++) перший приклад з цього уроку (Приклад: Проста HTML-форма) і внесіть в HTML-код невелика зміна:

тобто замініть POST на GET.
Збережіть файл під ім'ям file_name.html і обновіть сторінку браузера (F5), потім заповніть форму, наприклад Вася пупкин, І натисніть кнопку «Відправити». В адресному рядку браузера Ви побачите щось типу цього:

File_name.html? Firstname \u003d Вася & lastname \u003d Пупкін

Тепер ви бачите ім'я кожного елемента форми, а також його значення, прямо тут, в URL-адресу.
URL-адресу відділяється від інших даних форми символом знака питання, а імена і значення змінних поділяються знаком амперсанд (&) .
Цей метод потрібно використовувати, якщо ви не передаєте великих обсягів інформації.
Цей метод не підійде, якщо дані у вашій формі є конфіденційними, наприклад зберігають номер банківської карти або пароль.
Крім того, метод GET непридатний, якщо разом з формою ви хочете переслати на сервер файли.

Угруповання елементів форми

Елементи форми, пов'язані за змістом, можна згрупувати між тегами

і
. браузер відобразить
у вигляді рамки навколо групи елементів форми. Зовнішній вигляд рамки може бути змінений за допомогою каскадних таблиць стилів (CSS).
Щоб додати заголовок для кожної групи, знадобиться елемент , Який задає вбудовується в рамку текст заголовка групи.

У процесі навігації по сайтах користувач, в основному, тільки клацає по посиланнях щоб переміщатися по веб-сторінкам.

Але зрозуміло, що користувачеві іноді потрібно забезпечити власні поля введення. Ці види взаємодії включають в себе:

  • реєстрацію і вхід на сайтах;
  • введення особистої інформації (ім'я, адреса, дані кредитної картки і ін.);
  • фільтрацію контента (за допомогою випадаючих списків, прапорців і ін.);
  • виконання пошуку;
  • завантаження файлів.

Щоб пристосуватися до цих потреб, HTML пропонує інтерактивні елементи управління форми:

  • текстові поля (для однієї або декількох рядків);
  • перемикачі;
  • прапорці;
  • випадають списки;
  • віджети для завантаження;
  • кнопки відправки.

Ці елементи управління задіють різні теги HTML, але більшість з них використовує тег . Оскільки це самозакривних елемент, тип поля визначається його атрибутом type:

елемент

є блоковим елементом, який визначає інтерактивну частина веб-сторінки. Як результат, всі елементи управління (такі як ,






Теги, атрибути і значення

  • action \u003d "http: //сайт/comments.php" - визначає url за яким будуть відправлені дані з форми.
  • id \u003d "" - визначає ім'я, ідентифікатор елемента форми.
  • name \u003d "" - визначає ім'я елемента форми.
  • - визначають текстове поле в складі форми.
  • cols \u003d "" - визначає кількість колонок текстового поля форми.
  • rows \u003d "" - визначає кількість рядів текстового поля форми.

якщо між помістити текст, він буде показаний всередині поля як приклад, який легко видалити.

Приклад HTML форми | Випадаючий список

HTML форми




Теги, атрибути і значення

  • - визначають список з позиціями для вибору.
  • size \u003d "" - определяeт кількість видимих \u200b\u200bпозицій списку. Якщо значення дорівнює 1, ми маємо справу з списком, що випадає.
  • - визначають позиції (пункти) списку.
  • value \u003d "" - містить значення, яке буде відправлено формою за вказаною url на обробку.
  • selected \u003d "selected" - виділяє позицію списку в якості прикладу.

Приклад HTML форми | Список з смугою прокрутки

Збільшивши значення атрибута size \u003d "", ми отримаємо список із смугою прокрутки:

Перша позиція Друга позиція Третя позиція Четверта позиція

HTML форми




Для цього варіанту можна застосувати прапорець multiple \u003d "multiple", який робить можливим вибір декількох позицій. Його відсутність дозволяє вибрати тільки один пункт.

  • type \u003d "submit" - визначає кнопку.
  • type \u003d "reset" - визначає кнопку скидання.
  • value \u003d "" - визначає напис на кнопці.
  • Дивіться додатково:

    Форма в HTML це частина документа, яка дозволяє користувачеві ввести нас цікавить, яку згодом можна прийняти і обробити на стороні сервера. Іншими словами, форми використовуються для збору інформації введеної користувачами.

    Щоб визначити до якого елементу форми відноситься поточна мітка, необхідно використовувати атрибут for тега

    Розглянемо приклад використання:

    </span>Приклад використання тега <label><span>
    >

    У цьому прикладі ми:

    • усередині першій форми:
      • розмістили дві радиокнопки ( ) Для вибору одного з обмеженого числа варіантів. Ще раз зверніть увагу, що для радіокнопок всередині однієї форми необхідно вказувати однакове ім'я, Значення ми вказали різні. для першій checked, який вказує, що елемент повинен бути попередньо обраний при завантаженні сторінки (в даному випадку радіокнопка зі значенням yes). Крім того, ми вказали для радіокнопок глобальні атрибути, які визначають унікальний ідентифікатор для елемента.
      • Розмістили два елементи
    • усередині другий форми:
      • розмістили дві радиокнопки ( ) Для вибору одного з обмеженого числа варіантів. для другий радиокнопки ми вказали атрибут checked, який вказує, що елемент повинен бути попередньо обраний при завантаженні сторінки (в даному випадку радіокнопка зі значенням no). Крім того, ми вказали для радіокнопок унікальні значення в рамках форми і однакові імена.
      • Розмістили два елементи

    У браузері обидва варіанти (методу) використання текстових міток виглядають ідентично:

    Підказка для полів вводу

    Давайте розглянемо приклад використання:

    Приклад використання атрибута placeholder <span>
    Login: type \u003d "text" name \u003d "login" placeholder \u003d "Введіть ваш логін">

    Password: type \u003d "password" name \u003d "password" placeholder \u003d "Введіть Ваш пароль">

    В даному прикладі ми вказали для елемента з типом text (однорядкове текстове поле) і типом password (поле з паролем) текстову підказку для користувача (атрибут placeholder), яка описує очікуване значення для введення.

    Результат нашого прикладу:

    Питання і завдання по темі

    Перед тим як перейти до вивчення наступної теми пройдіть практичне завдання:

    • Використовуючи отримані знання складіть наступну форму оформлення замовлення:

    Нюанс: у полях, де передбачається вибір, повинна бути можливість здійснення вибору кліком по тексту, а не тільки по самому елементу.

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

    ... вміст форми ...

  • Якраз всередині елемента form повинні розташовуватися елементи управління, яких може бути як завгодно багато.
  • Атрибути форми:

    • В атрибуті action вказується серверний файл зі скриптом, відповідальним за основний обробіток даних, що пересилаються з форми. Зазвичай код цього файлу пишеться на серверній мові програмування, наприклад, на мові phpабо perl.
    • Атрибут enctype вказує на тип переданої на сервер інформації, якщо це просто текстові дані - text / plain, якщо з формою відсилаються файли, то слід вказати multipart / form-data.
    • Атрибут method вказує і визначає форму передачі даних. Детально ми на цьому зупинятися не будемо, однак слід сказати, що для більш надійної передачі слід вказати метод post.

    Елементи форми html

      <input type \u003d "text" name \u003d "login" size \u003d "20" value \u003d "(! LANG: Логін" maxlength = "25" > !}

      результат:

      • Значення атрибута type - text - вказує на те, що це саме текстове поле
      • size - розмір текстового поля в символах
      • maxlength - максимальна к-ть вміщаються в поле символів
      • value - початковий текст в текстовому полі
      • name - ім'я елемента, необхідно для обробки даних в файлі-обробнику

      результат:


      Замість тексту в поле відображається маска - зірочки або кружечки

      <input type \u003d "submit" value \u003d "Відправити дані">

      результат:

      Кнопка submit збирає всі дані з форми, введені користувачем і відправляє їх за адресою, вказаною в атрибуті action форми.

      <input type \u003d "reset" value \u003d "(! LANG: Очистити форму" > !}

      результат:

      Кнопка повертає стан всіх елементів управління до первісного (очищає форму)

      <input type \u003d "checkbox" name \u003d "asp" value \u003d "(! LANG: yes" > !}ASP<br\u003e <input type \u003d "checkbox" name \u003d "js" value \u003d "(! LANG: yes" checked = "checked" > !}javascript<br\u003e <input type \u003d "checkbox" name \u003d "php" value \u003d "(! LANG: yes" > !}PHP<br\u003e <input type \u003d "checkbox" name \u003d "html" value \u003d "(! LANG: yes" checked = "checked" > !}HTML<br\u003e

      ASP
      javascript
      PHP
      HTML


      результат:

      ASP
      javascript
      PHP
      HTML

      В html прапорець служить для організації множинного вибору, тобто коли необхідно і можливо вибрати кілька варіантів відповіді

      <input type \u003d "radio" name \u003d "book" value \u003d "(! LANG: asp" > !}ASP<br\u003e <input type \u003d "radio" name \u003d "book" value \u003d "(! LANG: js" > !}Javascript<br\u003e <input type \u003d "radio" name \u003d "book" value \u003d "(! LANG: php" > !}PHP<br\u003e <input type \u003d "radio" name \u003d "book" value \u003d "(! LANG: html" checked = "checked" > !}HTML<br\u003e

      ASP
      Javascript
      PHP
      HTML

      результат:

      ASP
      Javascript
      PHP
      HTML

      radio кнопка html служить для єдиного вибору з декількох варіантів

      Атрибут checked встановлює відразу елемент зазначеним

    важливо: для елементів radio необхідно, щоб значення атрибуту name у всіх елементів в групі було однаковим: в такому випадку елементи будуть працювати взаємопов'язане, при включенні одного елемента, інші буду відключатися

    Список, що випадає HTML

    Розглянемо приклад додавання списку:

    1 2 3 4 5 6 <select name \u003d "book" size \u003d "1"\u003e <option value \u003d "(! LANG: asp" > !}ASP</ Option\u003e <option value \u003d "(! LANG: js" > !}JavaScript</ Option\u003e <option value \u003d "(! LANG: php" > !}PHP</ Option\u003e <option value \u003d "(! LANG: html" selected = "selected" > !}HTML</ Option\u003e </ Select\u003e

    результат:

    • Список, що випадає складається з головного тега - select - який має закриває пару, а кожен пункт списку - це тег option, всередині якого відображається текст пункту
    • Атрибут size зі значенням «1» вказує на те, що список в згорнутому вигляді відображає один пункт, інші відкриваються при натисканні на стрілочки меню
    • Атрибут selected у пункту (option) вказує на те, що саме цей пункт буде спочатку видно, а інші пункти «згорнуті»

    Для великих і складних списків є можливість додати підзаголовки - тег optgroup з атрибутом label (напис):

    1 2 3 4 5 6 7 8 9 10 11 12 <select name \u003d "book" size \u003d "1"\u003e <optgroup label \u003d "Англійські"\u003e <option value \u003d "(! LANG: asp" > !}ASP</ Option\u003e <option value \u003d "(! LANG: js" > !}JavaScript</ Option\u003e <option value \u003d "(! LANG: php" > !}PHP</ Option\u003e <option value \u003d "(! LANG: html" selected = "selected" > !}HTML</ Option\u003e </ Optgroup\u003e <optgroup label \u003d "Російські"\u003e <option value \u003d "(! LANG: asp_rus" > !}ASP по-російськи</ Option\u003e <option value \u003d "(! LANG: js_rus" > !}JavaScript по-російськи</ Option\u003e </ Optgroup\u003e </ Select\u003e


    Для надання можливості вибору кількох пунктів одночасно необхідно додати атрибут multiple. Але в такому випадку і атрибут size слід встановити в значення, більше, ніж 1:

    результат:

    • Ширина елемента залежить від атрибута cols, який вказує скільки символів міститься по горизонталі
    • Атрибут rows визначає кількість рядків в елементі

    інші елементи

    Додаткові елементи і атрибути

    • Для елементів управління radioі checkboxзручно використовувати додаткові елементи, які, по-перше, роблять прив'язку тексту до самого елементу radio або checkbox, по-друге, додають обведення при кліці:
    • <input type \u003d "checkbox" id \u003d "book1"\u003e <label for \u003d "book1"\u003eASP</ Label\u003e

      У прикладі створена напис (тег label) для елемента checkbox. Прив'язка здійснюється через атрибут id, значення якого вказано в атрибуті for написи.

      результат:

    • Атрибут disabled дозволяє блокувати елемент, роблячи його недоступним для зміни користувачем:
    • <input type \u003d "text" name \u003d "login" size \u003d "20" value \u003d "(! LANG: Логін" maxlength = "25" disabled = "disabled" >!}
      <input type \u003d "checkbox" name \u003d "asp" value \u003d "(! LANG: yes" > !}ASP<br\u003e <input type \u003d "checkbox" name \u003d "js" value \u003d "(! LANG: yes" checked = "checked" disabled = "disabled" > !}javascript<br\u003e


      ASP
      javascript

     

     

    Це цікаво: