php - 在 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 ) . ' />';
解决方案
您的问题是因为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).' />';
推荐阅读
- python - 减少 Python zip 大小以与 AWS Lambda 一起使用
- reactjs - POST 方法 JSON 不更新 JSON 服务器本地文件
- drools - 流口水限制?
- reactjs - 使用带有 Typescript 接口的 Relay
- regex - 我正在尝试为每个单词的首字母大写的街道地址创建正则表达式验证
- spring-boot - Spring data r2dbc:与 mysql 连接时出现问题 - 找不到“r2dbcEntityTemplate”
- reactjs - heroku 部署问题-----> 错误:ENOENT:没有这样的文件或目录,stat '/app/client/build/index.html'
- vue.js - Vue:如何拥有条件槽组件?
- python - 不同分类变量的列之间的熊猫差异
- php - 为什么退出后程序继续?