2013-04-04 49 views
5

私は各回答の横にラジオボタンを表示する私のウェブサイトに投票しています。ユーザーがオプションを選択して送信すると、ajaxを使ってPHPスクリプトを実行して、値または選択したラジオボタンをテーブルに挿入します。ラジオボタンの値を取得し、ajaxを介してPHPに送信

私の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 ']:チェック済み) タイプ後に[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) {} 
    }); 

}); 

あなたは、あなたのPHPスクリプトでアクセス可能POST変数「poll_option」を持っている必要があります。 PHPで

+0

StuRさんにはありがとうございました。 –

0
$optionID = "="+optionID; 

私は非常にあなたが$を使用して変数を定義していないJavaScriptでは、あなたがここにo.Oをやろうとしているのか理解していません。

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 } 
}); 

あなたは$_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. 
関連する問題