【问题标题】:PHP not retrieving radio input valuePHP没有检索无线电输入值
【发布时间】:2012-03-24 22:20:11
【问题描述】:

我在使用 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";
}

问题是如果选择“yes”,PHP 似乎可以返回单选按钮的值,但如果选择“no”则不会,我尝试删除“checked”部分,但无济于事。无论我尝试什么,我都无法让它检索“0”值。

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

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

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

【问题讨论】:

    标签: php forms radio-button


    【解决方案1】:

    PHP 函数 empty 将返回 false 为 0、NULL、"" 等。

    引用自 php.net:

    “”(一个空字符串)

    0(0为整数)

    0.0(0 为浮点数)

    “0”(0作为字符串)

    错误

    array()(一个空数组)

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

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

    您必须根据您希望完成的任务修改您的条件以反映一个值。

    祝你好运!

    【讨论】:

    • 那么 isset() 在这种情况下是否可以检查“0”的值?
    • 完全正确 :) 但是您还必须检查该值是否为 0,即使该值为 1 或任何其他值,isset 也会起作用。使用 Hendrik Richter 所说的双重条件。干杯!
    • 再次感谢,总是对这里的回复速度和质量感到惊讶!
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2019-11-26
        • 2021-09-23
        • 2013-08-16
        • 1970-01-01
        • 2015-09-20
        • 2019-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多