PHP未检索无线电输入值


PHP not retrieving radio input value

我在使用PHP检索单选按钮的值时遇到了一个真正的问题。我有两个单选按钮:

<input name="admin" type="radio" value="1" />Yes
<input name="admin" type="radio" value="0" checked />No

还有一个条件PHP语句,检查PHP是否可以从中检索任何数据:

if(!empty($_POST['admin'])) {
    // do stuff
}
else {
   echo "Value not set";
}

问题是,如果选择"是",PHP似乎会为单选按钮返回一个值,但如果选择"否",PHP就不会返回。我曾尝试删除"已检查"部分,但没有成功。无论我尝试什么,我都无法让它检索"0"值。

我记得我使用PHP数组来命名复选框,但单选按钮肯定不需要这样做,因为任何时候都只能选择?

或者PHP只是在返回值为0的单选按钮时出现问题?

还是我在没有意识到的情况下做错了什么?

PHP函数为空时,0、NULL、"将返回false&";,以及其他。

引用php.net:

"quot;(空字符串)

0(0为整数)

0.0(0作为浮动)

"0";(0作为字符串)

array()(空数组)

var$var;(已声明的变量,但类中没有值)

所有这些都将返回(false),从而使if语句的执行无效。

你将不得不修改你的条件,以反映一个价值观,这取决于你想要实现的目标。

祝你好运!

您的问题是empty()将零视为空值,无论它是数字0还是字符串'0'。因此,与其使用empty(),不如使用isset()和/或直接检查,例如

if (isset($_POST['admin'])) {

if (isset($_POST['admin']) && $_POST['admin'] == 0) {

我相信零是你的问题。尝试将它们设置为"Y"answers"N",您应该会看到N值通过。这是因为0在PHP中是一个空值。