Я намереваюсь создать следующий HTML-код с использованием CGI.pm. Он просто содержит 2 кадра.
--------------------------------
Frame1 |
link1 | Frame2
link2 |
etc |
---------------------------------
Пользователь щелкнет ссылку в кадре 1, а результат появится в кадре 2.
Для этого я хочу назвать "link1" и т. Д. В cgi-скрипте в Frame1 (как запрос), а затем появиться в Frame2 (как ответ).Я не уверен, как добиться этого в CGI.
Это мой текущий скрипт:
#!/usr/bin/perl -w
use CGI::Carp qw(fatalsToBrowser);
use CGI qw/:standard/;
my $TITLE = "My title";
my $query = new CGI;
my $path_info = $query->path_info;
print $query->header();
$path_info = $query->path_info();
# If no path information is provided, then we create
# a side-by-side frame set
if (!$path_info) {
&print_frameset;
exit 0;
}
&print_html_header;
&print_query if $path_info=~/query/;
&print_response if $path_info=~/response/;
&print_end;
sub print_html_header {
print
$query->start_html(-title =>'My title',
-bgcolor=> "F5F5EB",
-style => {
-src => '../print.css',
-align=>'center',
}
),p;
}
sub print_end {
print $query->end_html;
}
# Create the frameset
sub print_frameset {
my $script_name = $query->script_name;
print <<EOF;
<html><head><title>$TITLE</title></head>
<frameset cols="35,65" frameborder=0 marginwidth=0 noresize>
<frame src="$script_name/query" name="query">
<frame src="$script_name/response" name="response">
</frameset>
EOF
;
exit 0;
}
sub print_query {
$script_name = $query->script_name;
print "<H1>Frame1</H2>\n";
# This is where I want to name "Link1" so that
# it can be called later in response frame
# But this doesn't seem to work
print h3("Link1", -name =>'link1");
}
sub print_response {
print "<H1>Frame2</H2>\n";
# If name == link1 do something...
}