Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Обработка checkbox (динамич. кол-во)


Автор: Morgul 16.7.2005, 14:54
приветствую.
вот хотелось бы мне знать - как мне обработать динамически генерируемое количество чекбоксов? Обычно параметры я получаю так:
use CGI qw(:standard);
$query = new CGI;
for ('q','aid', 'said') {
next unless defined $_;
$tp = $query->param($_);
${$_} = $tp;
}

это пример.
но я не могу в этот for запихать 100 параметров, - как-то глупо.
может кто подскажет?

PS. до сих пор обходился тем, что скидывал все параметры в файл, потом считывал и анализировал. но это некрасиво, непрактично и т.п.

Автор: korob2001 16.7.2005, 16:14
Всё великое в простом.

Всем checkbox'ам присвой одинаковые имена, а затем получай их в массив:
Код

my @check_group = $query->param('chboxes');

В итоге, в массиве будут сохранены значения всех чекбоксов, которые имеют имя chboxes, в том порядке, в котором они появляются в твоей html страничке. Тоже можно вытворять и с другими элементами формы, например: file, radio, text и т.д.

Удачи.

ЗЫ: это очень упрощает загрузку нескольких файлов на сервер, т.е. когда на странице есть форма с динамическим добавлением полей для выгрузки файла, например: как на Yandex'е цепляются аттачменты.

Автор: sharq 18.7.2005, 16:45
Morgul ой как странно ты их раньше обрабатывал...
Почитай документацию к модулю CGI! Реально разберешься smile

Пока ты читаешь доку, вот тебе пример, когда все значения и параметры, переданные скрипту, у тебя в хеше:
Код
use strict;
use CGI;

my $q = new CGI;
my $param = $q->Vars;

print $q->header(-charset => 'windows-1251'),
      $q->start_html('Использование модуля CGI'),
      $q->h1('Скрипту переданы следующие ключевые слова и параметры:');

print $q->h2("$_: $param->{$_}") foreach (keys %{$param});

print $q->end_html();

smile

Автор: Morgul 19.7.2005, 00:36
короб2001
спасибо.


sharq
я этот код где-то позаимствовал. Мне он показался получше, чем прописывать 10-30 строк query. Иногда скрипты реально гигантские получаются, вот там параметров-то хватает.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)