1

简单的问题,当我没有选择任何单选按钮时,我收到错误消息 Undefined index: gender

<?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>
4

7 回答 7

6
<?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>
于 2012-12-05T10:49:46.007 回答
4

您可以使用 @$_POST['gender'] 不引发错误

于 2012-12-05T10:49:21.920 回答
1

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

于 2012-12-05T10:41:56.887 回答
1

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

于 2012-12-05T10:42:38.317 回答
0

如果没有选择单选按钮,则不会提交“性别”输入的值。这与不勾选复选框相同。您需要通过使用检查它是否存在并具有有效值

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

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

于 2012-12-05T10:41:31.160 回答
0

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

您可以使用检查定义的索引array_key_exists('gender', $_POST)

于 2012-12-05T10:43:04.667 回答
-1

问题可以通过这种方式轻松解决。

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

如果您需要使用 PHP 进行验证,您可以针对 $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>

于 2016-12-04T11:05:15.857 回答