BTW, I've Googled around for info. on application menu systems, etc. Seems like a lot of sophisticated stuff out there. My approach is to dynamically load a drop-down (pop-up?) scrolling window from an applications table maintained in a MySQL database. -- Make a selection, and execute the associated executable object. Problem solved.
As I mentioned, a state problem apparently requires a second click on the Execute Application (i.e., Submit) button. First pass, the same Applications Menu panel is displayed. Second click, the requested application is executed. Interesting, too, that if you go back to the menu, select another ap., the thing returns to the previous ap. after which you can return to the menu, click submit, yet again, on the next ap., and the next ap. will be executed.
I haven't dwelled on the solution, but FYI, here is a sample of code that almost works. Notice that the -action argument is omitted; therefore, defaults(?) to the current document):
Using the CGI to start the form:
. . .and a little farther down, notice that the "-onclick=>set_apx()" apparently is not recognized by the popup_menu()function (subroutine, . . .whatever); however; executing immediately after the call produces the somewhat desirable results. I did try placing the call to set_apx() inside the checkForm() routine that is called -onsubmit, but that did not work: :print header(), start_html(-title=>$title, -bgcolor=>"cyan"), checkForm(), $cgi->start_form( -name=>"apps_menu", -method=>"GET", -onsubmit=>"return checkForm( this )" );
. . .and finally finish up the main with the usual suspects. It's probably worth noting that regarding the design, the execute button could be eliminated and the desired application could be immediately executed "-onclick" from the popup menu (if possible, . . .should be?), because the user can only select one item from the list:# ------------------------------ # Display Application Menu. # ------------------------------ print qq(<tr><td width=\"175\" align=\"right\"> <b>Application: </b></td><td>), $cgi-> popup_menu ( -name=>'ap_name', -values=>\@ap_names, -labels=>\%ap_labels, -size=>'8', # -onclick=>set_apx() Not good! ); set_apx(); # Sort-of works here as planned.
. . .and here is the "Set Application to Exec." subroutine that generates the JavaScript:URL that overrides the -action argument of the form tag generated by CGI.pm:print br(), submit(-name=>"action", -value=>"Start Application"), reset, end_form(), end_html(); $dbh->disconnect(); exit(0);
This event-sensitive, client-side JavaScript is obviously executing the desired application, but like an old diesel tractor, . . .you have to double-clutch it.# ---------------------------------------------------- sub set_apx { # Generate some JavaScript here: print qq(<script><!-- document.apps_menu.action=apps_menu['ap_name'].value; // --></script>); }
Suggestions?
Thanks,
Ron W.
In reply to Re^2: JavaScript to Perl: "-action" "-onsubmit"
by rtwingfield
in thread JavaScript to Perl: "-action" "-onsubmit"
by rtwingfield
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |