От автора: приветствую вас друзья. Из этой статьи вы узнаете, как произвести обработку select в PHP, как сгенерировать список select с помощью PHP и вывести выпадающий список формы. Приступим?
Исходные файлы текущей статьи вы можете скачать по ссылке.
Итак, давайте создадим простейший выпадающий список из нескольких стран:
1 2 3 4 5 6 7 |
<select class="form-control" name="country"> <option value="Австралия">Австралия</option> <option value="Австрия">Австрия</option> <option value="Азербайджан">Азербайджан</option> <option value="Албания">Албания</option> <option value="Алжир">Алжир</option> </select> |
Вот такой список мы получили.
Попробуем теперь выбрать страну и получить данные на сервере. Сделать это крайне просто. Данные отправляются методом POST и страна будет доступна в одноименном массиве, который можно распечатать в обработчике:
1 2 3 |
<?php echo '<pre>'; print_r($_POST); |
Достаточно просто. Хорошо, а что если мы хотим дать возможность пользователю выбрать несколько стран из списка select? Это можно сделать, добавив тегу select атрибут multiple:
1 |
<select class="form-control" name="country" multiple> |
Теперь можно выбрать несколько стран, зажимая клавишу Ctrl. Попробуем выбрать несколько стран и отправить форму. Я выберу первые две страны. Однако в результате я получу только вторую страну. Куда же делать еще одна? Для того, чтобы мы могли отправить более одного значения, необходимо немного изменить атрибут name списка select. А именно, мы должны указать, что значением данного списка может быть не одно значение, а массив значений. Делается это так:
1 |
<select class="form-control" name="country[]" multiple> |
Мы добавили квадратные скобки к имени поля. Эти скобки как раз сделают возможным сохранить более одного значения. Теперь данные на сервере будут выглядеть так:
Достаточно просто, не так ли? Ну и последний вопрос, который мы рассмотрим, это генерирования списка select с помощью PHP. Зачем это нужно? Смотрите, сейчас мы выводим список стран вручную. Если стран немного, это не составит больших неудобств. Однако, если мы решим сформировать список из сотен стран, тогда это будет проблемой. Гораздо проще сформировать такой список программно, буквально несколькими строками кода. Страны будут храниться в базе данных, откуда нам останется их получить и вывести в цикле.
Чтобы упростить пример, мы вместо стран сформируем список с годами. Такой список может пригодиться, если мы создаем форму регистрации и нам необходим выпадающий список с годами. Скажем, это будет список, начиная с 1900 до текущего года. Задача решается в несколько строк кода:
1 2 3 4 5 |
<select class="form-control" name="year"> <?php for($i = 1900; $i <= date('Y'); $i++): ?> <option value="<?=$i?>"><?=$i?></option> <?php endfor; ?> </select> |
Здесь все достаточно просто. Мы запускаем цикл, начиная с 1900 и заканчивая текущим годом, который вернет функция date(). В результате мы получим искомый список с годами:
Вот так вот просто мы можем осуществить вывод списка select, используя PHP. Ну а на этом текущую статью мы завершаем. Дополнительно по работе с формами вы можете посмотреть этот урок. Удачи!
Комментарии (3)