САМОУЧИТЕЛЬ PHP 4

Списки множественного выбора (multiple)


В какой форме приходят данные сценарию, если был создан multiple-список? Очень просто: все произойдет так, будтоесть не один, а несколько не-multiple-списков, все с одинаковым именем, и в каждом из которых выбрано по одному элементу. Иными словами, строка параметров, порожденная этим тэгом, будет выглядеть примерно так:

èìÿ=çíà÷åíèå1&èìÿ=çíà÷åíèå2&...&èìÿ=çíà÷åíèåN

Кстати говоря, совершенно не уникальный случай — то, что с одним именем связано сразу несколько значений. Действительно, нам никто не мешает создавать и другие тэги с идентичными именами. Это часто делается, например, для переключателей-флажков:

<input type=checkbox name=èìÿ value="Îäèí">Îäèí<br>

<input type=checkbox name=èìÿ value="Äâà">Äâà<br>

<input type=checkbox name=èìÿ value="Òðè">Òðè<br>

Если теперь пользователь установит сразу все флажки, то сценарию поступит строка (конечно, в URL-кодированном виде):

èìÿ=Îäèí&èìÿ=Äâà&èìÿ=Òðè

Из всего сказанного следует не очень утешительный вывод: при разборе строки параметров в сценарии мы не можем полагаться на то, что каждой переменной соответствует только одно значение. Нам придется учитывать, что их может быть не "один", а "много". А это очень неприятно с точки зрения программирования — особенно на Си.

Попутно мы обнаружили, что любой multiple-список может быть представлен набором флажков (независимых переключателей), а любой не-miltiple — в виде нескольких радиокнопок. Так что, вообще говоря, тэг <select> — некоторое функциональное излишество, и с точки зрения сценария вполне может заменяться флажками и радиокнопками.



Содержание раздела