====== Використання форм (HTML-ФОРМИ) ====== Форма HTML являє собою документ, створений з використанням елементів HTML. Призначенням форми є збір інформації від користувачів. Після того як користувач заповнить форму і запускає процес її обробки, інформація з неї потрапляє в програму, що працює на сервері. Інша програма під назвою Common Gateway Interface (CGI) обробляє її. Таким чином користувач може інтерактивно взаємодіяти з сервером Web через Internet. Форми так само зручні і для розробників сайту при розробці CMS (система управління вмістом (англ. Content Management System)), яка дозволяє підтримувати головну властивість сайту - актуальність ===== Створення простої форми ===== Теги ''
'' і '''' задають початок і кінець форми. Починаючий форму тег '''' містить два атрибути: ''action'' і ''method'' . Атрибут action містить адресу URL сценарію, який має бути викликаний для обробки форми. Атрибут method вказує браузеру, який вид ''HTTP'' запиту необхідно використовувати для відправки форми; можливі значення ''POST'' і ''GET''. Головна відмінність методів POST і GET полягає у способі передачі інформації. У методі GET параметри передаються через адресний рядок, тобто по суті в HTTP-заголовку запиту, в той час як у методі POST параметри передаються через тіло HTTP-запиту і ніяк не відбиваються на вигляді рядка. Для відправки форми на сервер використовується кнопка типу ''submit'', також форму можна відправити натиснувши клавішу ''Enter'' в межах форми. Якщо кнопка типу ''submit'' відсутній, клавіша ''Enter'' імітує її використання. Коли форма відправляється на сервер для обробки даних вказаним обробником, що знаходиться по адресі, заданим атрибутом action елементу Дані відправляються у вигляді пари «ім'я=значення», де ім'я визначається атрибутом name ( Задати імʼя можна наступним елементам ''input'', ''textarea'', ''button'' чи ''select'', а значення буде, тим, що користувач ввів в поле форми. Для тега form можна використовувати псевдо-класи CSS '':validі'', '':invalid''. Функція html-форми - обмін даними між користувачем та сервером або звязку між користувачем і адміністратором. Теґ '''' може містити один або більше з наступних елементів форми: * '''' * ''
{{ :subjects:basic:informatika:web:form_ex.png?nolink }} **Різниця між HTML 4.01 та HTML5** У HTML5 додано два нових атрибута: ''autocomplete'' та ''novalidate'', і видалено атрибут ''accept''. **Різниця між XHTML та HTML** У XHTML, атрибут ''name'' не рекомендується до використання. Замість цього використовуйте загальний атрибут ''id''. ===== Валідація ===== Валідація (англ. Validation) — проєкт підтвердження відповідності (обгрунтованості) або надання законної сили; набір процедур або дій, спрямованих на підтвердження за допомогою об'єктивних свідчень, математичних методів і вимірювань, наведення доказів, що вимоги до процесу, проєкту або системи виконано і цей процес, проєкт або система відповідають заданим параметрам. **Валідація в програмуванні** — процес, що дозволяє визначити, наскільки точно з позицій потенційного користувача певна модель представляє задані сутності реального світу. Коли ви збираєте інформацію від людей, через форму, ви застосовуєте якісь перевірки. Недотримання цих вимог може призвести до втрати клієнтів, небажаних даних в вашій базі даних або навіть слабких місць в системі безпеки вашого сайту. Історично, створення перевірок було болісним процесом. На стороні сервера, процес полегшується завдяки фреймворкам, які обробляють все за вас, але на стороні клієнта, ви, як правило, користуєтесь JavaScript-бібліотеками, які доволі складно інтегрувати. На щастя, HTML5 дає нам ряд можливостей, завдяки яким можна виконувати більшість перевірок. Форми в HTML5 тепер мають вбудовану підтримку для перевірки за допомогою використання спеціальних атрибутів і нових типів введення, і надають вам широкий контроль над CSS-стилями. ==== Спеціалізовані типи вводу ==== HTML5 вводить кілька нових типів введення. Вони можуть бути використані для створення полів вводу, які будуть приймати тільки певний тип даних. * color * date * datetime * datetime-local * email * month * number * range * search * tel * time * url * week Щоб скористуватися новими типами, включіть їх в якості значення атрибута ''type'': Якщо браузер не підтримує цей тип вводу, це поле буде вести себе, як звичайне поле для введення тексту. Також корисно знати, що деякі поля (наприклад, ''email'' і ''tel'') викликають відкриття спеціалізованої клавіатури у мобільних пристроїв. ==== Обов'язкові Поля ==== Просто додавши "необхідний атрибут до ,