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