首页 > 解决方案 > 在 PHP 中设置复选框默认选中

问题描述

我的无头 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 ) . ' />';

标签: phpwordpresscheckboxternary

解决方案


您的问题是因为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).' />';

推荐阅读