Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1317
  • Last Modified:

Javascript add input radio value to a parameter of a query string

I'm working in classic asp and I have a form that I want to add the value of the radio button to a url with parameters. mypage.asp?party=yes or mypage.asp?party=no

<label>Go To party</label><br />
<input type="radio" name="party" id="rsvpyes" value="yes" /><br />
<input type="radio" name="party" id="rsvpno" value="no" /><br />
  

<a href="mypage.asp?party=yes">RSVP</a> or
<a href="mypage.asp?party=no">RSVP</a>

Open in new window

0
swaggerking
Asked:
swaggerking
  • 3
  • 3
  • 3
  • +2
3 Solutions
 
Dave BaldwinFixer of ProblemsCommented:
If you put it in a form with a 'GET' method, it will do that without javascript.

<form action="mypage.asp" method="get" >
<label>Go To party</label><br />
<input type="radio" name="party" id="rsvpyes" value="yes" /> YES<br />
<input type="radio" name="party" id="rsvpno" value="no" /> NO<br />
<input type="submit" value="Submit" />

Open in new window

0
 
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
Is this what you mean?   http://jsbin.com/emIPiHuW/1/edit?html,js,output
function getParty()
{
var party = document.getElementsByName('party');

for (var i = 0, length = party.length; i < length; i++) {
    if (party[i].checked) {
       
        //alert(party[i].value);
         window.location='mypage.asp?party='+party[i].value;
     
        break;
    }
}
}

Open in new window

  <label>Go To party</label><br />
<input type="radio" name="party" id="rsvpyes" value="yes" /><br />
<input type="radio" name="party" id="rsvpno" value="no" /><br />
  

<a href="#mypage.asp?party=yes" onclick="getParty()">RSVP</a> or
<a href="#mypage.asp?party=no"  onclick="getParty()">RSVP</a>

Open in new window


Did you want to click the link? or the radio?
0
 
GaryCommented:
As Dave has said why not use a form but with jquery

http://jsfiddle.net/GaryC123/c2Np6/4/

<label>Go To party</label><br />
<input type="radio" name="party" id="rsvpyes" value="yes" />Yes<br />
<input type="radio" name="party" id="rsvpno" value="no" />No<br />
<a href="mypage.asp?">RSVP</a>

Open in new window



$("a").click(function(){
   $(this).attr("href",$(this).attr("href") + "party="+$(":radio[name=party]:checked").val())
})

Open in new window

0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
swaggerkingAuthor Commented:
Dave GET won't work in this scenario.
Scott and Padas,
Very close to what I need but I should have been more clear with my question. My apologies, so I will increase points.

My form POST but redirects to "thankyoupage.asp" based upon a value in a hidden input. I need to add/append "yes" or "no" to the end of "thankyoupage.asp?party=" so I can display the correct message dependent on whether they can attend or not attend party.

<form action="somepage.asp" method="post" name="form" >
<input type="radio" name="party" id="rsvpyes" value="yes" /> YES<br />
<input type="radio" name="party" id="rsvpno" value="no" /> NO<br />

<button name="Submit" type="submit" value="Submit" />RSVP</button>

<input type="hidden" name="confirm page" value="thankyoupage.asp?party=">
</form>

Open in new window


Again, sorry for not being clearer.
0
 
GaryCommented:
<form action="somepage.asp" method="post" name="form" >
<input type="radio" name="party" id="rsvpyes" value="yes" /> YES<br />
<input type="radio" name="party" id="rsvpno" value="no" /> NO<br />

<button name="Submit" type="submit" value="Submit" />RSVP</button>

<input type="hidden" name="confirm page" value="thankyoupage.asp?party=">
</form> 
<script>
$("[name=form]").submit(function(){
   $("[name='confirm page']").val($(this).val() + $(":radio[name=party]:checked").val())
})
</script>

Open in new window


Still as clear as mud...
If you are posting to somepage.asp then why do you need to pass thankyoupage.asp?party={value} to the page as well?
Just grab the value of the radio buton in somepage.asp and then do whatever you need to do.
0
 
leakim971PluritechnicianCommented:
when posting your page to somepage.asp, the script(somepage.asp) know if party is << yes >> or << no >> 
so why do you need an hidden field ?
just concatenate the party query string value to your redirect string :

Response.Redirect "http://www.w3schools.com?party=" & Request.QueryString("party")
%>

Open in new window

0
 
Dave BaldwinFixer of ProblemsCommented:
Ok, try this.  It is much more direct, doesn't require a hidden input or javascript.  You probably will want to make the 'no' radio button the default (checked="checked") to make sure some value gets sent.  If neither button is checked, no value will be sent.

On "somepage.asp", make this the last code on the page.  It takes the value from the radio button and appends it to the redirect URL as a query string.  It's what I would and have done.
<%
' all the other code comes first.
dim party
party=Request.Form("party")
Response.Redirect("thankyoupage.asp?party=" & party)
Response.end
%>

Open in new window

0
 
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
There really is no need to use js or jquery on this page.  The user selects yes or no then clicks the submit button.  Then on the somepage.asp you would use

<%
party="no"
if request.form("party")<>"" then
    if request.form("party")="yes" then
         party="yes"
end if
' later in the page

if party="yes" then
     response.write "Thank you for coming to my party"
      else
     response.write "I am sorry you can not come to my party"
end if
%>

Open in new window

0
 
Dave BaldwinFixer of ProblemsCommented:
There you go, @swaggerking , three almost identical suggestions in a row as soon as we knew enough about what you were trying to do.
0
 
swaggerkingAuthor Commented:
I hear you guys loud and clear and I agree with you 100%. Unfortunately I don't have access to "somepage.asp". Somepage.asp is actually an internal form processing script. Internally we use this to process any inet form and redirect to any page using the hidden input "confirm page".

GaryC123,
<script>
$("[name=form]").submit(function(){
   $("[name='confirm page']").val($(this).val() + $(":radio[name=party]:checked").val())
})
</script>

Open in new window


This only adds the value "yes" or "no" to the hidden
example:
<input type="hidden" name="confirmpage" value="yes">
or
<input type="hidden" name="confirmpage" value="no">

I'd prefer:
<input type="hidden" name="confirmpage" value="thankyoupage.asp?party=yes">
or
<input type="hidden" name="confirmpage" value="thankyoupage.asp?party=no">
0
 
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
A couple of options.

1) Use ajax to post to somepage.asp and let the done function transfer to the thank you page.

2) Use the radio as the confirm page and depending on the value you have your yes or no plus your redirect.
<input type="radio" name="confirm page" id="rsvpyes" value="thankyou.asp?rsvp=yes" /><br />
<input type="radio" name="confirm page" id="rsvpno" value="thankyou.asp?rsvp=no" /><br />

Open in new window

0
 
GaryCommented:
Too late for me to test this now but if it is only setting the value to yes/no then change the script to

<script>
$("[name=form]").submit(function(){
   $("[name='confirm page']").val($("[name='confirm page']").val + $(":radio[name=party]:checked").val())
})
</script> 

Open in new window


edit
I see why now

Still confused as to the logic behind this.
0
 
swaggerkingAuthor Commented:
I got working with your suggestions. Much appreciation.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 3
  • 3
  • 3
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now