onChange + javascript in perl CGI - question | Unix Linux Forums | UNIX for Dummies Questions & Answers

  Go Back    


UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !!

onChange + javascript in perl CGI - question

UNIX for Dummies Questions & Answers


Tags
cgi, html, javascript, onchange, perl, perl shift, post, shift, shift perl

Closed Thread    
 
Thread Tools Search this Thread Display Modes
    #1  
Old 07-27-2008
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
 
Join Date: Mar 2005
Last Activity: 5 July 2014, 11:14 AM EDT
Location: classification algos
Posts: 3,203
Thanks: 19
Thanked 30 Times in 27 Posts
onChange + javascript in perl CGI - question

Hello all,

Am trying to include a onChange java script to my perl CGI application which uses POST method to upload files to file_server

This is how I embedded javascript in the perl code that renders CGI application


Code:
print qq|
  <script type="text/javascript" src="display.js">
  </script>
  |;

Contents of display javascript are :


Code:
function changeDispatch(newLink) {
  if ( newLink != null ) {
    document.location.href = newLink;
  }
}

This is the popup menu, when an item is selected from the list it should automatically trigger the action designation instead of a separate "GO" ( submit ) button for each of the popup menu that I have got.


Code:
print $cgi->popup_menu(-name=>'fruits',
                         -values=>$fruits_arr,
                         -onChange=>"changeDispatch('$arg')");

Here in '$arg' if am able to store the selected value from the popup_menu, then its quite easy to formulate a string and pass it to changedDispatch in javascript.
But am not able to retrieve any such data

Whats happening :
If I click on any of the fruits say, "apple" the onClick effect is happening and it comes to the same initial page. If that is, fruits.cgi once I click that - it again comes to fruits.cgi as though it has been loaded for the first time

What I want to happen :
Based on the onClick event, I have other functions to be dispatched via GUI. That would seem to happen only when I know what option is clicked.

I accept that am not that good when it comes to GUI design or adding effects to that.

I have seen several website doing this, it should be something very easy for those who had already worked on this.
Could you please provide some pointers ?

thanks

Last edited by matrixmadhan; 07-27-2008 at 08:09 AM.. Reason: added more relevant information
Sponsored Links
    #2  
Old 07-27-2008
cbkihong cbkihong is offline Forum Advisor  
Advisor
 
Join Date: Sep 2002
Last Activity: 4 May 2014, 6:22 AM EDT
Location: Hong Kong, China
Posts: 1,622
Thanks: 0
Thanked 9 Times in 8 Posts
You did not show anything about the onClick, but I assume if you want to capture onChange you ought not be implementing onClick? Even though theoretically they do not interfere if you do them properly, it may be a source of confusion unless you know you are doing it the right way.

Do you get any expected values for $arg? Seems like from your post you don't but I am not totally clear about that. If so, you should first concentrate on getting $arg to carry the value you expect first.

How do you get the value of $arg? I assume you used CGI->param()?

By the way, have you tested the changeDispatch() Javascript function separately using a static HTML test page before? If you look at DOM:document.location - MDC there is a note saying the use of document.location.href as a write property is not portable. In fact I have only used

window.location = url;

in the past. I have not seen anyone making a redirect like you did (using document.location.href) before. Are you sure that function is working properly?

If everything fails, I suggest you to:

(1) Check the Javascript debugger for any relevant error messages
(2) Re-post with the HTML generated by Perl. Because your issue is not related to Perl but HTML and Javascript, the abstraction by Perl CGI may mask investigation.
Sponsored Links
    #3  
Old 09-26-2008
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
 
Join Date: Mar 2005
Last Activity: 5 July 2014, 11:14 AM EDT
Location: classification algos
Posts: 3,203
Thanks: 19
Thanked 30 Times in 27 Posts
Thanks for the reply. ( Am replying back after a long time, sorry about that )

Here is what am trying to achieve.

Using a "submit" button, everything works correctly. But I would like to achieve the same just by clicking any of the options in "pop_up" menu using a java script.

I tried several other forms as posted above but I could not get none of them to work for my case ( I know I missed something very badly )

Could you please help me with that ?

This is just a quick code that I wrote to demonstrate what am trying to do and what is the problem in doing so. There are so many mistakes that are unrelated to the post, please ignore them.

Thanks for the reply again in advance


Code:
#! /opt/third-party/bin/perl

use strict;
use warnings;

use CGI qw/:standard *table/;

my $cgi = CGI->new();

print $cgi->header('text/html');

sub generateHeader {
  print $cgi->start_html(-title=>'Sample Test');
  print $cgi->h3({-align=>'center'}, 'Sample Test Display');
  print $cgi->start_form(-method => 'GET',
                         -name => 'main_form',
                         -action => 'test.cgi',
                         -enctype => 'multipart/form-data');
}

sub submitButtonGenerator {
  my $button_name = shift;
  print $cgi->submit(-value=>$button_name);
}

sub generateFooter {
  my ($i, $tmp);

  print $cgi->end_form();
  print $cgi->hr();

  print $cgi->end_html();
}

sub display {
 my @arr = ('IceCream', 'Choco', 'Biscuit', 'Fruits');
 my $edible_arr = \@arr;

 print $cgi->popup_menu(-name=>'edible',
                         -values=>$edible_arr);

}

sub displayResult {
  print $cgi->param("edible") . $cgi->br();
}

generateHeader;
display;
print $cgi->br();
print $cgi->br();
submitButtonGenerator("Go");
displayResult;
generateFooter;

exit(0);

    #4  
Old 09-29-2008
cbkihong cbkihong is offline Forum Advisor  
Advisor
 
Join Date: Sep 2002
Last Activity: 4 May 2014, 6:22 AM EDT
Location: Hong Kong, China
Posts: 1,622
Thanks: 0
Thanked 9 Times in 8 Posts
You meant this?


Code:
#! /opt/third-party/bin/perl

use strict;
use warnings;

use CGI qw/:standard *table/;

my $cgi = CGI->new();

print $cgi->header('text/html');

sub generateHeader {
  print $cgi->start_html(-title=>'Sample Test');
  print $cgi->h3({-align=>'center'}, 'Sample Test Display');
  print $cgi->start_form(-method => 'GET',
                         -id => 'main_form',
                         -name => 'main_form',
                         -action => 'test.cgi',
                         -enctype => 'multipart/form-data');
}

sub submitButtonGenerator {
  my $button_name = shift;
  print $cgi->submit(-value=>$button_name);
}

sub generateFooter {
  my ($i, $tmp);

  print $cgi->end_form();
  print $cgi->hr();

  print $cgi->end_html();
}

sub display {
 my @arr = ('IceCream', 'Choco', 'Biscuit', 'Fruits');
 my $edible_arr = \@arr;

 print $cgi->popup_menu(-name=>'edible',
              -onChange => q/document.getElementById('main_form').submit()/,
                         -values=>$edible_arr);

}

sub displayResult {
  print $cgi->param("edible") . $cgi->br();
}

generateHeader;
display;
print $cgi->br();
print $cgi->br();
submitButtonGenerator("Go");
displayResult;
generateFooter;

exit(0);

Sponsored Links
    #5  
Old 10-08-2008
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
 
Join Date: Mar 2005
Last Activity: 5 July 2014, 11:14 AM EDT
Location: classification algos
Posts: 3,203
Thanks: 19
Thanked 30 Times in 27 Posts
Perfectly yes !

This is what I have been looking for. Thank you very much for this.

I will build rest of my application using this as a starting point.
Sponsored Links
Closed Thread

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
How to use JavaScript in Perl Object Oriented Navrattan Bansa Shell Programming and Scripting 1 03-01-2012 06:25 AM
transforming small javascript into perl marringi UNIX for Dummies Questions & Answers 9 05-01-2008 07:01 AM
Perl question regarding [ ] hankooknara Shell Programming and Scripting 2 07-01-2007 04:21 PM
PERL question jerardfjay Shell Programming and Scripting 13 10-25-2005 04:53 PM
PERL & KSH Big Question jingi1234 UNIX for Dummies Questions & Answers 3 06-02-2005 10:46 AM



All times are GMT -4. The time now is 04:29 PM.