http://qs321.pair.com?node_id=208178


in reply to Re: Re: Calling a sub from a button
in thread Calling a sub from a button

In that case you would need the form action to be the script, and submit another field which the script uses to find the right subroutine. You could use a hidden field. But a nice way to do it IMHO is with the submit button. Since the value field in a Submit button only gets submitted with the form when that particular button is pressed, you have the option of different buttons within the same form. For example, in the html:
<FORM ACTION="yourscript.pl" METHOD="POST"> <!-- insert other form inputs here --> <INPUT TYPE="SUBMIT" NAME="Action" VALUE="Run Foo"> <INPUT TYPE="SUBMIT" NAME="Action" VALUE="Run Bar"> <INPUT TYPE="SUBMIT" NAME="Action" VALUE="Store Event"> </FORM>
Then in the script (in this example saved as yourscript.pl) you could have something like
use CGI qw/:standard/; if (param('Action') and param('Action') eq 'Run Foo') { foo(); } elsif (param('Action') and param('Action') eq 'Run Bar') { bar(); } elsif (param('Action') and param('Action') eq 'Store Event') { store_event(); } else { print header, start_html('Ack!'), h1 'you have to call this from the form!', end_html; }


§ George Sherston