0

我想检查是否选择了一个单选按钮,如果是,那么我想打印它的值。

<form ....>
     Gender:<br />
 <input type="radio" name="sex" value="male">Male<br />
 <input type="radio" name="sex" value="female">Female<br />
</form>

我正在尝试这个,但是当没有选择任何单选按钮时它会出错。

$selected_radio = $_POST['sex'];
if ($selected_radio == 'male') {
    print "Gender is male <br />";
}
else if ($selected_radio == 'female') {
    print "Gender is female <br />";
}
else {
    print "No gender selected. <br />";
}
4

5 回答 5

1

您已经在单选按钮的value属性中获得了性别信息。无需将它们再次写入字符串。您的比较运算符不能用空格分隔。

<?php
    if (isset($_POST['sex']))  
        echo "Gender is " . $_POST['sex'];
    else 
        echo "No gender selected.";
?>

或者还有另一种单行解决方案:

<?php echo isset($_POST['sex']) ? "Gender is " . $_POST['sex'] : "No gender selected."; ?>
于 2013-05-11T11:17:25.527 回答
1

还有“= =”错误

你输入的名字是“sex”

<input type="radio" name="sex" value="male">

你问的是“性别”:

$_POST['gender']
于 2013-05-11T11:19:02.847 回答
1

您的比较操作中有一个sintax错误,应该使用 equal sing==而不是= =please change

if ($selected_radio = = 'male') {

if ($selected_radio == 'male') {

你也应该这样做

else if ($selected_radio == 'female') {

此处提供比较运算符文档

您的表单中也有错误,您的输入应该name="gender"与您的代码匹配$_POST['gender']

于 2013-05-11T11:16:08.483 回答
1

你改写了= ===这就是问题所在

   $selected_radio = $_POST['gender'];
if ($selected_radio == 'male') {
    print "Gender is male"."<br/>";
}
else if ($selected_radio == 'female') {
    print "Gender is female"."<br/>";
}
else {
    print "No gender selected."<br/>";
}
于 2013-05-11T11:16:35.683 回答
0

如果未设置,则不检查。

if (isset($_POST['gender'])) {
    $selected_radio = $_POST['gender'];
    if ($selected_radio == 'male') {
        print "Gender is male"."<br/>";
    } else if ($selected_radio == 'female') {
        print "Gender is female"."<br/>";
    } else {
        print "form invalid submition. CSRF maybe";
    }
} else {
    print "no gender selected";
}
于 2013-05-11T11:28:23.283 回答