【问题标题】:Set checkbox checked by default in PHP在 PHP 中设置复选框默认选中
【发布时间】:2021-04-26 07:02:27
【问题描述】:

我的无头 WordPress 仪表板中有一个复选框,允许用户在前端视图上切换功能。但是,我需要控制要加载的功能的复选框,默认情况下已选中,即使该值尚未在数据库中。如果用户点击关闭的复选框,它将取消选中该功能,然后用户可以再次选中它以进行检查。

我正在尝试使用简单的三元来检查数据库中的值是否存在,如果存在,请在复选框上设置属性checkbed,否则应取消选中该复选框。

但是,我的逻辑和 PHP 语法存在问题,无法使其正常工作。我错过了什么,导致仪表板呈现checked value="1" checked='checked' /> 而不是复选框本身?

$option_toggled = get_option( 'option_toggle' );

echo '<input type="checkbox" name="option_toggle" ' . $option_toggled === '1' ? 'checked' : null . ' value="1" ' . checked( get_option( 'option_toggle' ), 1, false ) . ' />';

【问题讨论】:

    标签: php wordpress checkbox ternary


    【解决方案1】:

    您的问题是因为您添加到三元组的 null 参数。将其设置为空字符串,或将三元运算符括在括号中:

    echo '<input type="checkbox" name="option_toggle" ' . ($option_toggled === '1' ? 'checked' : null) . ' value="1" ' . checked( get_option( 'option_toggle' ), 1, false ) . ' />';
    

    话虽如此,为什么不让checked() 函数执行此操作,因为它似乎已经在执行此操作?

    echo '<input type="checkbox" name="option_toggle" '.checked(get_option('option_toggle'), 1, false).' />';
    

    【讨论】:

      【解决方案2】:

      事实证明,简单的答案是在初始加载时使用add_option( 'option_toggle', 'true', '', 'yes');wp_options 表中设置选项。这样,该属性最初就已经存在,然后可以从那里打开/关闭。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-03-27
        • 2015-11-17
        • 1970-01-01
        • 2016-09-19
        • 2019-07-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多