Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

[Solved]: How to perform different actions before and after submit button is clicked.

by Perl300 (Friar)
on Aug 31, 2015 at 22:50 UTC ( [id://1140580]=perlquestion: print w/replies, xml ) Need Help??

Perl300 has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks,

I am trying to perform specific tasks in my CGI script depending on if the "Submit" button is clicked or not.

Basically, I have a dynamic webpage and I am trying to ensure that when the page is first called from browser, some code should be skipped. To do this, I am trying to put a check for Submit button.

I am trying to use $query->param('submit') with a sample code (Test.pl) like:

#!/usr/bin/perl use strict; use warnings; use CGI::Carp qw(fatalsToBrowser); use CGI qw/:standard/; use CGI; my $query = new CGI; print $query->header; print <<END_HTML; <html><head><title>Thank You</title></head> <body> <form method="post"> <input type="submit" value="Submit" id="button1" /> <br />Thank you - your form was submitted correctly! </body></html> END_HTML my $a = $query->param('submit'); print "Value: $a\n";

With this code when I access Test.pl from browser, it shows the page with submit button, but even after I click on submit nothing is stored $a.

Can you please help me find what I am missing here? My final goal is to run a chunk of code when the webpage is just fetched but Submit button is not clicked. After submit button is clicked, I am showing the resulting data in the same page.

  • Comment on [Solved]: How to perform different actions before and after submit button is clicked.
  • Download Code

Replies are listed 'Best First'.
Re: How to perform different actions before and after submit button is clicked.
by tangent (Parson) on Aug 31, 2015 at 23:12 UTC
    To get the value of a form input you need to give it a name, so change your button to:
    <input type="submit" name="button1" value="Submit" />
    Then you can see if it was clicked:
    print '<html><head><title>Test</title></head><body>'; if ( $query->param('button1') ) { print 'Thank you - your form was submitted correctly!'; } else { print '<form method="post"><input type="submit" name="button1" val +ue="Submit"></form>'; } print '</body></html>';
Re: How to perform different actions before and after submit button is clicked.
by NetWallah (Canon) on Sep 01, 2015 at 03:04 UTC
    You are printing the value of $a after
    </body></html>
    so, it gets ignored.

    Try printing the value afer <body> but before the end </body>.

            Clarity: it's like that one thing that is not the other thing, except for when it is.

Re: How to perform different actions before and after submit button is clicked.
by Perl300 (Friar) on Sep 01, 2015 at 13:56 UTC
    Thank you tangent. I added name="submitButton" and then used $query->param('submitButton'); and it worked.I needed id for referring the button in css

    Thank you NetWallah for your response as well. Updating subject to mark resolved.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1140580]
Approved by kcott
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2024-04-25 13:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found