I have a poll on my website which displays radio buttons next to each answer. When the user selects an option and submits, im running a a php script via ajax to insert the value or the selected radio button into a table.
My Ajax is running but is currently inserting a 0 row each row, so it’s not picking up the value from the radio button. Any help would be appreciated.
HTML:
<form id="poll_form" method="post" accept-charset="utf-8"> <input type="radio" name="poll_option" value="1" id="poll_option" /><label for='1'> Arts</label><br /> <input type="radio" name="poll_option" value="2" id="poll_option" /><label for='2'> Film</label><br /> <input type="radio" name="poll_option" value="3" id="poll_option" /><label for='3'> Games</label><br /> <input type="radio" name="poll_option" value="4" id="poll_option" /><label for='4'> Music</label><br /> <input type="radio" name="poll_option" value="5" id="poll_option" /><label for='5'> Sports</label><br /> <input type="radio" name="poll_option" value="6" id="poll_option" /><label for='6'> Television</label><br /> <input type="submit" value="Vote →" id="submit_vote" class="poll_btn"/> </form>
AJAX:
$("#submit_vote").click(function(e) { var option=$('input[type="radio"]:checked').val(); $optionID = "="+optionID; $.ajax({ type: "POST", url: "ajax_submit_vote.php", data: {"optionID" : $optionID} }); });
PHP: (shortened version)
if($_SERVER['REQUEST_METHOD'] == "POST"){ //Get value from posted form $option = $_POST['poll_option']; //Insert into db $insert_vote = "INSERT into poll (userip,categoryid) VALUES ('$ip','$option')";
Thanks in advance!
Advertisement
Answer
$("#submit_vote").click(function(e){ $.ajax( { type: "POST", url: "ajax_submit_vote.php", data: $('#poll_form').serialize(), success: function( response ) {} }); });
You should then have the POST variable “poll_option” accessible in your PHP script.