我无法使用$ .post传递单选按钮值 任何人都可以帮我找出问题吗?
我收到了未定义的索引:性别
<?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>
答案 0 :(得分:3)
尝试更改此行:
{ gender: signup.gender.value }
对此:
{ gender: $('.radio').val() }
如果您希望将其保留为vanilla javascript,则需要明确使用forms
集合:
{ gender: document.forms['signup'].gender.value }
答案 1 :(得分:0)
您可以对表单使用jquery序列化:
//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'] : '';
答案 2 :(得分:0)
试试这个......
{ gender: $('.radio [name="gender"]').val() }
问候。
答案 3 :(得分:0)
我刚刚找到答案
$('input:radio[name=gender]:checked').val()
感谢大家的帮助!