1

$.post を使用してラジオ ボタンの値を渡すのに問題があります。問題を解決できる人はいますか?

未定義の index:gender を取得しました

<?php
    $gender = $_POST['gender'];    
    if (!$gender) {
        echo $gender;
    }    
?>

<script type="text/javascript">
    function get(){
        $('#error').hide();

        $.post(
            'signup.php', 
            { gender:signup.gender.value },
            function(output){
                $('#error').html(output).fadeIn(100);
            }
        )       
    }
</script>

<form name="signup">
    <input class="radio" type="radio" name="gender" value="male"/> Male<br/>
    <input class="radio" type="radio" name="gender" value="female"/> Female
    <input type="button" value="submit" onclick="get();" />
</form>

<div id="error"></div>
4

4 に答える 4

3

この行を変更してみてください:

{ gender: signup.gender.value }

これに:

{ gender: $('.radio').val() }

バニラ JavaScript として保持したい場合は、formsコレクションを明示的に使用する必要があります。

{ gender: document.forms['signup'].gender.value }
于 2013-01-30T13:31:46.797 に答える
0

これを試して...

{ gender: $('.radio [name="gender"]').val() }

ご挨拶。

于 2013-01-30T13:37:21.793 に答える
0

私はちょうど答えを見つけました

$('input:radio[name=gender]:checked').val()

みんなの助けに感謝します!

于 2013-01-30T15:27:43.503 に答える
0

フォームに jquery serialize を使用できます。

//Form data:
var aData = $('#formID').serializeArray();
//Create param string:
var sSend = $.param(aData);
//Call ajax:
$.post('signup.php', sSend, function(sData){
   ...
});

または値の場合:

$('input[name=gender]:checked').val();

そしてあなたのphpでより良い:

$gender = isset($_POST['gender']) ? $_POST['gender'] : '';
于 2013-01-30T13:33:06.120 に答える