rlm@0: #!C:/strawberry/perl/bin/perl.exe
rlm@0: 
rlm@0: # pjx_chained.pl: Multiple exported perl subs, and the exported
rlm@0: # functions are chained to an event, like this...
rlm@0: # onclick="func1(['in1'],['out1']); func2(['in1'],['out2']);"
rlm@0: 
rlm@0: use strict;
rlm@0: use CGI::Ajax;
rlm@0: use CGI;
rlm@0: 
rlm@0: my $q = new CGI;
rlm@0: 
rlm@0: my $multiply = sub {
rlm@0:   my $a = shift;
rlm@0:   my $b = shift;
rlm@0:   return $a * $b;
rlm@0: };
rlm@0: 
rlm@0: my $divide = sub {
rlm@0:   my $a = shift;
rlm@0:   my $b = shift;
rlm@0:   return $a / $b;
rlm@0: };
rlm@0: 
rlm@0: my $Show_Form = sub {
rlm@0:   my $html = "";
rlm@0:   $html .= <<EOT;
rlm@0: <HTML>
rlm@0: <HEAD><title>CGI::Ajax Chained function Example</title>
rlm@0: </HEAD>
rlm@0: <BODY>
rlm@0: <form>
rlm@0:   Enter Number:
rlm@0: <input type="text" id="val1" size="6" value=2 
rlm@0:     onkeyup="divide(['val1','val2'], ['out1']); multiply(['val1','val2'], ['out2']);">
rlm@0: 
rlm@0: <input type="text" id="val2" size="6" value = 7
rlm@0:     onkeyup="divide(['val1','val2'], ['out1']); multiply(['val1','val2'], ['out2']);"><br/><br/>
rlm@0: 
rlm@0: <input type=text id="out1">
rlm@0: <input type=text id="out2">
rlm@0: 
rlm@0: 
rlm@0: </form>
rlm@0: </BODY>
rlm@0: </HTML>
rlm@0: EOT
rlm@0:   return $html;
rlm@0: };
rlm@0: 
rlm@0: my $pjx = CGI::Ajax->new( 'multiply' => $multiply, 'divide' => $divide);
rlm@0: $pjx->JSDEBUG(1);
rlm@0: $pjx->DEBUG(1);
rlm@0: print $pjx->build_html($q,$Show_Form); # this outputs the html for the page