2010-12-03 15 views
0

CGIを使用して次のHTMLを作成します。pm 単純に2つのフレームが含まれています。CGI.pmを使用してリンクに名前を付けるには

-------------------------------- 
    Frame1   | 
    link1   | Frame2 
    link2   | 
    etc    | 
--------------------------------- 

ユーザーは、フレーム1内のリンクをクリックし、その結果をとして、(FRAME1にCGIスクリプトになど、私は「リンク1」という名前を付けたいことを行うには、フレーム内 2.

表示されますクエリ)、 とし、フレーム2(応答として)に表示されます。 私はCGIでそれを達成する方法がわかりません。

これは私が持っている現在のスクリプトです:ちょうど行い、あなたのサブprint_queryで

#!/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... 
} 

答えて

1

print a({-href=>"$script_name/whatever_you_want", -target=>'response'}, "Link1"), 
関連する問題