• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 228
  • Last Modified:

passing variables

I'm using a form which contains a link. (<a href></a>)
When a user clicks on this link, I want to pass some form values to my perl file. Now I want to read this parameters out in perl with :

$qn1=$q->param(qn1);
$qn2=$q->param(qn2);

and not with:
$ARGV[0] =~ s/\W//g;
$ARGV[1] =~ s/\W//g;
$qn1=$ARGV[0];
$qn2=$ARGV[1];

How to do this ?

Ps. I want to have a link <a href></a>, not a submit button.
0
michael123199
Asked:
michael123199
1 Solution
 
christopher sagayamCommented:
0
 
michael123199Author Commented:
I want to read it out with:
$qn1=$q->param(qn1);
$qn2=$q->param(qn2);

not with:
$ARGV[0] =~ s/\W//g;
$ARGV[1] =~ s/\W//g;
$qn1=$ARGV[0];
$qn2=$ARGV[1];
0
 
christopher sagayamCommented:
you can read it out like that using my method
0
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
christopher sagayamCommented:
you want to read variables passed to your cgi script isnt it ?
0
 
bebonhamCommented:
chris18 is 100% correct.

the only drawback to that method is it only submits the link and not other form data...

I mention this only because otherwise you should have already accepted his answer.



if you want the link data to submit WITH a form, put hidden fields in the form and use this cute little script.


here is an example.

as long as you make enough hidden fields for your values, this will work.

more, it is kindof neat.
it changes the names and the values of the fields, so it should work flawlessly in any browser.

although, chris18 really answered your question, try this anyways...right now the text fields are type text, not type hidden, so you can see it work. and the submit part is also commented out...so if you want to send it to your cgi you'll need to change that.

<HTML>
  <HEAD>
      <TITLE></TITLE> <SCRIPT>
function sendQS(an)
{
base="hiddenField"
put=an.href.substr(an.href.lastIndexOf('/')+1)
tArr=new Array()
tArr=put.split('&')
values=new Array()
keys=new Array()
j=0
for(i in tArr)
{
keys[j]=tArr[i].split('=')[0]
values[j++]=tArr[i].split('=')[1]
}
for(v in values)
{
eval("document.forms['formName'].elements['" + base + v + "'].name=keys[v]")
eval("document.forms['formName'].elements['" + base + v + "'].value=values[v]")
}
//document.forms['formName'].submit()
}


</SCRIPT>
  </HEAD>
  <BODY>
      <P><A HREF="key1=value1&key2=value2&key3=value3"
          ONCLICK="sendQS(this);return false">click to send</A> </P>
      <FORM NAME="formName" METHOD="POST" ACTION="http://www.yoursite.com">
          <INPUT TYPE="TEXT" NAME="hiddenField0">
          <INPUT TYPE="TEXT" NAME="hiddenField1">
          <INPUT TYPE="TEXT" NAME="hiddenField2">
<INPUT TYPE="TEXT" NAME="hiddenField3">
<INPUT TYPE="TEXT" NAME="hiddenField4">
<INPUT TYPE="TEXT" NAME="hiddenField5">
         
           </FORM> </BODY>
</HTML>
0
 
ahoffmannCommented:
how about simply using in your page:

   <INPUT TYPE=hidden NAME=qn1 VALUE=whatever>
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now