2013-04-04 3 views
5

У меня есть опрос на моем сайте, на котором отображаются переключатели рядом с каждым ответом. Когда пользователь выбирает параметр и отправляет, im запускает скрипт php через ajax, чтобы вставить значение или выбранный переключатель в таблицу.Получение значения радиокнопки и отправка через ajax на php

My Ajax работает, но в настоящее время вставляет строку из 0 строк в каждую строку, поэтому она не подбирает значение из переключателя. Любая помощь будет оценена по достоинству.

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'>&nbsp;Arts</label><br /> 
    <input type="radio" name="poll_option" value="2" id="poll_option" /><label for='2'>&nbsp;Film</label><br /> 
    <input type="radio" name="poll_option" value="3" id="poll_option" /><label for='3'>&nbsp;Games</label><br /> 
    <input type="radio" name="poll_option" value="4" id="poll_option" /><label for='4'>&nbsp;Music</label><br /> 
    <input type="radio" name="poll_option" value="5" id="poll_option" /><label for='5'>&nbsp;Sports</label><br /> 
    <input type="radio" name="poll_option" value="6" id="poll_option" /><label for='6'>&nbsp;Television</label><br />  
    <input type="submit" value="Vote &rarr;" 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: (сокращенный вариант)

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')"; 

Заранее спасибо!

+0

'данных: { "optionID": $ optionID}' должен быть 'данные: {optionID: $ optionID}' – tiagojpdias

+0

Вы получаете правильное значение в переменной вариант, чтобы начать с? Если не попробовать '$ ('input [type =" radio "] [' name = poll_option ']: checked'). Val();' Обратите внимание на новое добавление ['name-poll_option'] после типа = "radio" – Keeleon

ответ

9
$("#submit_vote").click(function(e){ 

    $.ajax({ 
     type: "POST", 
     url: "ajax_submit_vote.php", 
     data: $('#poll_form').serialize(), 
     success: function(response) {} 
    }); 

}); 

Затем вы должны иметь POST переменную «poll_option» доступный в вашем PHP скрипт.

+0

Спасибо StuR отлично работает :) –

0
$optionID = "="+optionID; 

Я не совсем понимаю, что вы пытаетесь сделать здесь o.o, в JavaScript вы не определяете ваши переменные, используя $.

data: { optionID : option} 

используя его как это должно работать. Вы бы получить его, как это в PHP:

$option_value=$_POST['optionID']; 
2
var option = $('input[type="radio"]:checked').val(); 

$.ajax({ 
    type: "POST", 
    url: "ajax_submit_vote.php", 
    data: { poll_option : option } 
}); 

В PHP вы читаете $_POST['poll_option'] поэтому вы должны использовать poll_option в качестве ключа в вашем объекте данных. Кроме того, значение сохраняется в option, а не $optionID, как вы пытались использовать.

$ является допустимым символом в именах переменных в Javascript, он ничего особенного сам не делать, но некоторые кодеры префикс все, что объект JQuery с $, чтобы они могли заглянуть через код и легко увидеть, какие переменные уже есть Оболочка jQuery.

Например:

var $option = $('input[type="radio"]:checked'); // $option is the jQuery wrapped HTML element 
var myValue = $option.val(); // we know $option already has the jQuery wrapper so no need to use the $(..) syntax. 
Смежные вопросы