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

swaggerkingAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

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

Scott FellDeveloper & 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?
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

Your Guide to Achieving IT Business Success

The IT Service Excellence Tool Kit has best practices to keep your clients happy and business booming. Inside, you’ll find everything you need to increase client satisfaction and retention, become more competitive, and increase your overall success.

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.
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.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
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

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

Scott FellDeveloper & 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

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.
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">
Scott FellDeveloper & 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

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.
swaggerkingAuthor Commented:
I got working with your suggestions. Much appreciation.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
JavaScript

From novice to tech pro — start learning today.