#!/usr/bin/perl -w
use strict;
use vars qw/$query $dbh/;
&main();
sub main {
use CGI;
$query = CGI->new();
&connect();
print $query->header(-type=>'text/html', -expires=>0);
print $query->start_html();
print &popup_component();
print &make_output($query->param('SomeName')) if (defined $query->param('SomeName') && &check_field($query->param('SomeName')));
print $query->end_html();
&clean_up();
}
=head2 popup_component()
Построение комбобокса.
npp - поле считаю первичным ключом
=cut
sub popup_component {
my $sth = $dbh->prepare(qq/select npp, film, zakaz from from records/);
die "Can't prepare query!!!" if (!$sth);
die "Can't execute query!!!" if (!$sth->execute);
my $values = [];
my $labels = {};
while (my $arr = $sth->fetch) {
push @$values, $arr->[0];
$labels->{$arr->[0]} = $arr->[1];
}
return &form($values, $labels);
}
sub form {
my $values = shift;
my $lables = shift;
return
$query->start_form(-method=>'POST', -action=>$query->url(-relative=>1)),
$query->popup_menu(-name=>'SomeName', -values=>$values, -labels=>$labels),
$query->submit(-value=>'Ok'),
$query->end_form();
}
=head2 check_field()
Проверка существания записи в таблице records.
На выходе 1 - типа запись существует.
0 - записи не существует.
=cut
sub check_field {
.. .. ..
$checked ? 0 : 1;
}
sub make_output {
my $value = shift;
my $sth = $dbh->prepare(qq/select * from records where npp = ?/);
die "Can't prepare query!!!" if (!$sth);
die "Can't execute query!!!" if (!$sth->execute($value));
my $arr = $sth->fetch;
return &show_info($arr);
}
sub show_info {
my $arr = shift;
return
$query->table({width=>'100%'},
$query->Tr(
$query->td('здесь выводишь результаты выборки каким угодно макаром')
)
);
}
=head2 connect()
Поключение к базе данных.
=cut
sub connect {
$dbh;
.. ... ... ..
}
=head2 clean_up()
Отключение от бд.
=cut
sub clean_up {
.. ..
}
список элементов
$sth = $dbh->query("select film from records");
print "<select name=product size=5>";
while(@arr = $sth->fetchrow) {
foreach(@arr) {
print "<option>", $_;
}
}
print "</select>\n";
print "<input type=submit name=useraction value=\"OK\">";
есть таблица состоящая из полей npp film zakaz и т. д. как по полю film сделать чтобы он выдал и npp и film и zakaz.
как сделать так, чтобы в зависимости от выбранного пользователем элемента по нему выдавалась подробная информация то есть остальные поля.
по типу
$sth = $dbh->query("select * from records where film=выбранному элементу");
подскажите пожалуйста.
Как определить данные отправленные скрипту из формы. :)
на webscript.ru помоему тебе все ответили...