PHP单选按钮 - 未定义的索引

时间:2012-12-05 10:40:27

标签: php

简单的问题,当我没有选择任何单选按钮时,我收到了错误消息 未定义的索引:性别

<?PHP
if(isset($_POST['register'])){

    $gender=$_POST['gender'];
    echo $gender;
    }
?>

<html>
    <form action="testing.php" method="POST">
        <input type="radio" name="gender" value="male" />Male
        <input type="radio" name="gender" value="female" />Female
    <input type="submit" name="register" value="Register" />
    </form>
</html>

7 个答案:

答案 0 :(得分:4)

<?PHP
if(isset($_POST['register'])){


    if(!empty($_POST['gender'])) {

        $gender=$_POST['gender'];
        echo $gender;

        }
    }
?>

<html>
    <form action="radio.php" method="POST">
        <input type="radio" name="gender" value="male"  />Male
        <input type="radio" name="gender" value="female" />Female
    <input type="submit" name="register" value="Register" />
    </form>
</html>

答案 1 :(得分:2)

你可以使用@ $ _ POST ['gender']来不引发错误

答案 2 :(得分:1)

未选中的单选按钮和复选框不会被表单发布,因此它们不会显示在$_POST中。

答案 3 :(得分:1)

当然,如果您没有选择单选按钮,则会出现错误。 因为当您没有选择一个时,该值不会被发布。 您可以1)检查索引是否存在isset()或2)在页面加载时选中一个单选按钮,以便始终发送该值。

答案 4 :(得分:0)

如果没有选中的单选按钮,则不会提交“性别”输入的值。这与勾选复选框相同。您需要使用

检查它是否存在并具有有效值
if(!empty($_POST['gender'])) {
    ...
}

其他检查方式包括isset($_POST['gender'])array_key_exists('gender', $_POST),但这些方法不会检查值是零还是空字符串(可能是您想要的也可能不是)

答案 5 :(得分:0)

问题在于$_POST['gender']。由于您没有选择任何内容,因此未定义性别。

您可以使用array_key_exists('gender', $_POST)

检查已定义的索引

答案 6 :(得分:-1)

这个问题很容易解决。

if(isset($_POST['register'])){
    if(isset($_POST['gender'])) {
        $gender = $_POST['gender'];
    }else{
        $gender = "";
    }
}

如果您需要使用PHP进行验证,则可以针对$ gender =&#34;&#34;;

进行验证
<html>
<form action="radio.php" method="POST">
    <input type="radio" name="gender" value="male"  />Male
    <input type="radio" name="gender" value="female" />Female
<input type="submit" name="register" value="Register" />
</form>