473,499 Members | 1,548 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Passing javascript variables to Perl

12 New Member
Hi

I have a html page with javascript in it that assigns a set of coordinates to javascript variables. The question I have is how can I then send these variables to a Perl CGI script using a submit on a html form.

An example of some of the code below:

Expand|Select|Wrap|Line Numbers
  1.     var map;
  2.     var geocoder = null;
  3.     var addressMarker;
  4.     var originpoint = null;
  5.  
  6. ....................
  7.  
  8.  
  9. function showAddress(address) {
  10.       if (geocoder) {
  11.         geocoder.getLatLng(address,
  12.           function(point1) {
  13.             if (!point1) {
  14.               alert(address + " not found");
  15.             } else {
  16.               if (addressMarker) {
  17.                 map.removeOverlay(addressMarker);
  18.               }
  19.               addressMarker = new GMarker(point1);
  20.               map.setCenter(point1, 15);
  21.               map.addOverlay(addressMarker);
  22.               originpoint = point1;
  23.               alert("origin is now: "+originpoint+" destination is now: "+destinationpoint);
  24.             }
  25.           }
  26.         );
  27.       }
  28.     }
  29.  
  30. <body onload="load()" onunload="GUnload()">
  31.     <form action="#" onsubmit="showAddress(this.address.value); return false">
  32.       <p>
  33.  Origin:<input type="text" size="50" id="addressInput" name="address" value="London, UK" />
  34.         <input type="submit" value="Show Origin" />
  35.       </p>
  36.     </form>
  37.  
  38.  
Now I want to be able to store the variable "originpoint" and using another form to submit it to the perl CGI script. Any ideas?
Jul 20 '07 #1
8 5446
Harch84
12 New Member
Can anyone suggest an answer to this? I was thinking about some sort of hidden input form but am not sure how to implement it or how it would work?
Jul 20 '07 #2
pbmods
5,821 Recognized Expert Expert
Heya, Harch.

Easiest way to do it is to put them in the form. Create a couple of hidden inputs, then assign their values in the form's onsubmit.
Jul 21 '07 #3
Harch84
12 New Member
Hi Pbmods

I tried to do what you said but seem to be passing just the name of the variable not the actual value of the variable?

Expand|Select|Wrap|Line Numbers
  1.     <form action="http://morar.geos.ed.ac.uk/~s0679212/cgi_bin/sql_test.pl" method="POST" onSubmit="Origin">
  2.     <input type="hidden" name="Origin" value="originpoint">
  3.     <input type="Submit" value="Go!">
  4.     </form>
  5.  
In the perl script this returns the text "originpoint" instead of the actual value of the variable originpoint from javascript. What am I doing wrong?
Jul 21 '07 #4
pbmods
5,821 Recognized Expert Expert
Heya Harch.

You have to use the onsubmit handler for your form and then use JavaScript to populate the form values:

Expand|Select|Wrap|Line Numbers
  1. <form ... onsubmit="return setVars();">
Expand|Select|Wrap|Line Numbers
  1. function setVars()
  2. {
  3.     document.getElementById('idOfInput') = variableName;
  4.     .
  5.     .
  6.     .
  7.     return true;
  8. }
  9.  
Jul 21 '07 #5
Harch84
12 New Member
Im really sorry about this but I still seem to be getting errors in my script preventing the javascrip variable to be passed to perl. I have used the advice given here and have this code:

Expand|Select|Wrap|Line Numbers
  1.     <script type="text/javascript">
  2.     //<![CDATA[
  3.  
  4.     function setVars()
  5.         {
  6.             document.getElementById('orig') = originpoint;
  7.             return true;
  8.         }
  9.  
  10.     //]]>
  11.     </script>
  12.  
  13.  
  14. <body onload="load()" onunload="GUnload()">
  15.  
  16. ........................ // other forms go here that use geocoder
  17.  
  18. <form action="http://morar.geos.ed.ac.uk/~s0679212/cgi_bin/sql_test.pl" method="POST" onsubmit="return setVars();">
  19. <input type="hidden" id="orig" name="Origin">
  20. <input type="Submit" value="Go!">
  21. </form>
  22.  
  23.   </body>
  24. </html>
  25.  
  26.  
Now the error I get is when I click on the submit button on the web page and it says that on the line 90 char 4 which is:

Expand|Select|Wrap|Line Numbers
  1.  
  2. 88    function setVars()
  3. 89    {
  4. 90        document.getElementById('orig') = originpoint;
  5. 91        return true;
  6. 92    }
  7.  
  8.  
The error says that there is a "Wrong number of arguements or invalid property assignment".??

As you can tell im no javascript expert so any help would be massivly appreciated and im sure its just something simple that I cant see but is obvious to you all. Thanks in advance
Jul 22 '07 #6
pbmods
5,821 Recognized Expert Expert
Heya, Harch.

You're getting close.

In that statement, you are trying to set the *element* to originpoint, which is what's giving JavaScript such a bellyache.

Instead, you want to set the element's *value* to originpoint:
Expand|Select|Wrap|Line Numbers
  1.  function setVars()
  2. {
  3.     document.getElementById('orig').value = originpoint;
  4.     return true;
  5. }
  6.  
Jul 22 '07 #7
Harch84
12 New Member
Heya Pbmods

That was the final part of the puzzle thanks so much for your help! Works perfectly now I almost cant believe it :-)

All the best

Harch
Jul 22 '07 #8
pbmods
5,821 Recognized Expert Expert
Heya, Harch.

Glad to hear you got it working! Good luck with your project, and if you ever need anything, post back anytime :)
Jul 22 '07 #9

Sign in to post your reply or Sign up for a free account.

Similar topics

9
2762
by: google_nospam | last post by:
Thanks in advance for any help. I'm looking for a way to pass data from php to perl. Basically, I want to take some dynamic data from a database, mixed with user input, then reformat it to make a...
1
9568
by: Joe | last post by:
I am trying to write a Perlscript to be used with some HTML pages. Here is how it works: 1.. The first HTML page has a form which requests for user input. Then it passes the QUERY_STRING...
1
3594
by: Consuelo Guenther | last post by:
Hello, I am having problems with passing variables between pages. I have the following: First asp page has the function: -----------------------------------------------------------------------...
3
12852
by: Jeanne | last post by:
I am working on a cgi script that is suppose to pop-up a javascript box from the following perl variables:$TodayDate, $LinkCity, $LinkState. I recently encountered a problem with the $LinkCity...
3
2763
by: Tommo | last post by:
Hello All, I am a still learning so be easy on me. I am trying to get some code to work that is using JS and Perl/CGI, I am using AS Perl and an Apache Server on XP as the webserver. Can anyone...
3
14902
by: domeceo | last post by:
can anyone tell me why I cannot pass values in a setTimeout function whenever I use this function it says "menu is undefined" after th alert. function imgOff(menu, num) { if (document.images) {...
26
45464
by: Dave Hammond | last post by:
In document "A.html" I have defined a function and within the document body have included an IFRAME element who's source is document "B.html". In document "B.html" I am trying to call the function...
1
3278
by: satish2112 | last post by:
Hi, I have a text-area which contains values from mysql database and 2 buttons, Edit and Update. When I click on the Edit button, I can edit the text-area (initially non-editable). After this,...
5
5871
by: veeraiah | last post by:
Hi, I am new to PERL Scripting, i need your help with one of the problem i am having. I am having a PERL Script which has two variables $CurMon and $PriorMon. a Windows batch script calls this...
0
7126
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
7168
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
7210
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
1
6891
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
5465
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
4595
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
3096
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
0
3087
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
0
1424
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.