简单的问题,当我没有选择任何单选按钮时,我收到了错误消息 未定义的索引:性别
<?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>
答案 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>