【问题标题】:When the Switch Input is off, it returns NULL element?当 Switch Input 关闭时,它返回 NULL 元素?
【发布时间】:2016-07-02 01:51:43
【问题描述】:

我有一个 Krajee SwitchInputs 数组,当 SwitchInput 的每个人都关闭时,它什么都不返回。

SwitchInput::widget([
    'name' => 'work_time[]',
    'value' => 1,
}

【问题讨论】:

    标签: yii2


    【解决方案1】:

    您收不到值的原因

    这应该是expected behavior(空的复选框不被认为是“成功的”)并且与实际的kartik-widget无关。在后台,小部件使用常规复选框。

    为了节省开销,空复选框不会传输“0”。因此,当您有多个并且全部关闭时,将不会传输任何内容。不过这没问题,因为你知道什么时候都不见了,什么时候都关了!

    你可以在这里找到很多类似的问题,例如this one,解释同样的事情。不要太担心,因为它很简单:

    • 值缺失或 0:单个复选框已关闭
    • 所有值缺失:全部关闭

    如果您仍然想要解决方法,可以找到here

    检查正确的方法

    以下代码在比较时会考虑类型。通常,您将使用布尔值或 1 和 0 作为整数。两者都可以完美运行,但布尔方式更好,因为您不仅可以使用等号运算符==,还可以使用相同的运算符===

    $myCheckboxVal = isset(Yii::$app->request->post('my_checkbox')) ? true : false;
    

    【讨论】:

      【解决方案2】:

      谢谢,我解决了。

      $value=isset($_POST['day_check']) ? '1' : '0';
      

      【讨论】:

      • 嘿法西德!是的,这段代码有效......但这个答案没有描述问题。如果其他用户找到此页面,他们可能会找到一个解决该确切问题的代码,但他们不知道为什么。我在下面用代码扩展了我的答案(响应类型而不使用 1 和 0 作为字符串)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 2019-11-11
      • 1970-01-01
      • 2022-01-21
      • 2015-08-20
      相关资源
      最近更新 更多