Forum Webscript.Ru

Программирование => Perl => Тема начата: Error202 от 25 Февраля 2006, 23:21:01

Название: Параметры методом POST
Отправлено: Error202 от 25 Февраля 2006, 23:21:01
Определяю все данные при момощи CGI -> param(xxx)...
Форма создается динамически...
Как можно узнать сколько полей было передано по форме?
Т.е., допустим, генерится 15 полей "ТЕКСТ" с именами t1, t2, t3.. t15... Может и больше или меньше полей... И нужно определить сколько всего таких полей было передано...
Название: Параметры методом POST
Отправлено: Mog. от 26 Февраля 2006, 12:09:32
@arr_par=param();
и посчитать
Название: Параметры методом POST
Отправлено: DamonLSD от 29 Сентября 2006, 14:58:13
Цитировать
Error202:
Т.е., допустим, генерится 15 полей "ТЕКСТ" с именами t1, t2, t3.. t15... Может и больше или меньше полей... И нужно определить сколько всего таких полей было передано...


... и каким образом вывести значения этих сгенерированных полей? т.е.
t1 - текст из формы 1,
t2 - текст из формы 2,
t3 - текст из формы 3,
..
t15 - текст из формы 15,
...

Спасибо.
Название: Параметры методом POST
Отправлено: DamonLSD от 29 Сентября 2006, 16:50:46
вот так пойдет?

Цитировать

foreach $key ($query->param) {
print "$key ->";
@values = $query->param($key);
print join(", ",@values),"
";
}
Название: Параметры методом POST
Отправлено: Green Kakadu от 29 Сентября 2006, 22:27:46
my $q = CGI->new();
my %params = $q->Vars;

foreach my $p (keys %params)
{
    print "$p => $params{$p}\\n";
}
Название: Параметры методом POST
Отправлено: DamonLSD от 30 Сентября 2006, 15:16:47
ок. спасибо!
Теперь усложним задачку. В скрипт из формы передались следующие поля (print "$p => $params{$p}\\n"):
id_1 => 603
id_2 => 602
id_3 => 605
id_4 => 604
ocenka_1 => 5
ocenka_2 => 5
ocenka_3 => 5
ocenka_4 => 5
predmet => Автомобили

Каким образом все это дело разложить по полочкам и внести в БД, чтобы в ней получилось 4 записи - id, predmet, ocenka?
Цитировать

my $sql = qq{INSERT INTO table (id, predmet, ocenka)
                 VALUES (\'??\', \'??\', \'??\')
         };

my $sth = $dbh->prepare($sql);
$sth->execute();


Большое спасибо!
Название: Параметры методом POST
Отправлено: Green Kakadu от 02 Октября 2006, 21:49:24
а в чем собственно проблема то? если знаешь сколько должно быть записей прошелся в цикле от 1 до 4 и выбрал то что нужно..
Название: Параметры методом POST
Отправлено: DamonLSD от 03 Октября 2006, 11:12:42
Да, но все записи (параметр => значение) подходят для дальнейшей работы! Нужно сделать выборку из всех переданных параметров, например, выбрать только параметры id_хх, ocenka_хх и predmet ну и конечно все значения этих параметров, а потом уже приладить для вставки в БД
my $sql = qq{INSERT INTO table (id, predmet, ocenka)
VALUES ($id, \'$predmet\', $ocenka)
};
Название: Параметры методом POST
Отправлено: Green Kakadu от 03 Октября 2006, 22:50:06
Цитировать
DamonLSD:
Да, но все записи (параметр => значение) подходят для дальнейшей работы! Нужно сделать выборку из всех переданных параметров, например, выбрать только параметры id_хх, ocenka_хх и predmet ну и конечно все значения этих параметров

ммм, непонятно в чем проблема. ты про это;

for (my $i =1; $i<=4; $i++)
{
my $id = $params{\'id_\'.$i};
my $lala = $params{\'lalala_\'.$i};
       $sth->execute($id, $lala);

}
Название: Параметры методом POST
Отправлено: DamonLSD от 04 Октября 2006, 16:05:57
Green Kakadu, спасибо!