Ні для кого не є секретом, що найбільш поширеним способом взаємодії html-сторінки з сайтом є форма. Форма (тобто, html-елемент утворений тегом form) використовується і безкоштовними поштовими службами, електронними магазинами і багатьма іншими типами сайтів.
Обробка простих форм за допомогою PHP не представляє ніяких труднощів. Однак час від часу виникає потреба обробити форму, що містить кілька однотипних полів, до того ж, що їх кількість може змінюватися в широкому діапазоні і їх кількість заздалегідь не відомо. У PHP передбачено для таких випадків обробка однотипних полів як масиву значень.
Розглянемо докладніше варіанти для різних типів полів.
текстові поля
Під текстовими полями в цій статті розуміються елементи, створювані тегам input зі значенням параметра type рівним text і тегом textarea. Організувати обробку форми складається з декількох таких полів найпростіше. На лістингу нижче наведено лістинг з html-розміткою для такої форми.
Як видно з лістингу, імена для елементів форми, з точки зору PHP. є елементами масиву. Тому PHP -сценарій, який буде обробляти цю форму, буде сприймати все безліч текстових полів цієї форми як єдиний масив. До окремих елементів можна звертатися за індексами або використовувати перерахування за допомогою команд list і each. як це зроблено в наступному прикладі.
перемикачі
Перемикачами (checkbox) в цій статті називаються елементи, створювані тегам input зі значенням параметра type рівним checkbox. Форма для використання змінного кількості «перемикачів» будується абсолютно так само. Зверніть увагу, що вибір конкретного значення перемикача (тобто значення властивості value) не важливий. Приклад приведений в лістингу нижче:
Однак обробка такої форми відрізняється від обробки, описаної для текстових полів. В даному випадку необхідно визначити, включив чи ні відвідувач сайту той чи інший перемикач. Якщо включив - то відповідний елемент масиву існує, якщо немає - то відсутня. У наступному лістингу приведений приклад PHP сценарію, який роздруковує включені перемикачі:
Радіо-кнопки
Перед тим як описувати обробку радіо-кнопок необхідно згадати, як вони працюють. Суть радіо-кнопок (елементи створені тегами input зі значенням параметра type рівним radio) полягає в тому що, вибираючи одну кнопку, користувач автоматично знімає виділення з іншої кнопки з цього ж набору. Кнопки об'єднуються в набір дуже просто: у всіх кнопок в наборі одне і теж ім'я.
А ось значення (тобто параметри value) у кнопок в наборі - різні. І на сайт буде відправлено значення обраної кнопки з ім'ям набору. Так само як і у випадку з текстовими полями і перемикачами імена наборів радіо-кнопок повинні оформлятися як імена елементів масиву в PHP. Приклад такої форми наведено в наступному лістингу:
Якщо ж кнопка вибрана, то відповідний елемент масиву буде містити її значення (як для текстових полів). Нижче наведено лістинг прикладу, який займається обробкою форму з декількома наборами радіо-кнопок.
Таким чином, нічого складного в обробці складних форм немає.