我正在构建一个简单的用户注册和信息更新表单,其中包含许多CodeIgniter复选框。我在1
字段下的MySQL数据库中将复选框的值存储为0
(如果已选中)和tinyint(1)
(如果未选中)。
所以在用户更新表单中,我必须设置从这些MySQL字段返回的默认值。另一方面,如果未传递表单验证,则数据不应丢失。因此,我需要使用CI的set_checkbox函数和第三个参数,如下所示:
<input type="checkbox" name="my_field" value="1" <?php echo set_checkbox('my_field', '1', $returned_boolean_value); ?> >
但它不起作用,因为我的MySQL查询不返回变量$returned_boolean_value
的布尔值。它将0
或1
作为字符串返回。
所以PHP查询就像这样:
set_checkbox('my_field', '1', '1');
但必须是这样的:
set_checkbox('my_field', '1', TRUE);
我的问题是如何使用从数据库返回的数据设置set_checkbox的第三个布尔参数?
我也看了相关问题,但没有发现任何相关问题。任何帮助,将不胜感激。提前谢谢。
答案 0 :(得分:3)
转换为布尔值
<?php echo set_checkbox('my_field', '1', (boolean) $returned_boolean_value); ?>
答案 1 :(得分:1)
使用C ++样式的另一个选项if / else
set_checkbox('my_field', '1', $returned_boolean_value ? TRUE : FALSE);
答案 2 :(得分:0)
您可以使用旧的双重否定或字符串比较
set_checkbox('my_field', '1', !! $string_0_or_1 );
set_checkbox('my_field', '1', $string_0_or_1 == '1' );
答案 3 :(得分:0)
<?php echo set_checkbox('my_field', '1', (int) $returned_boolean_value); ?>
<?php echo set_checkbox('my_field', '1', intval($returned_boolean_value)); ?>
<?php echo set_checkbox('my_field', '1', (bool)$returned_boolean_value); ?>
<?php echo set_checkbox('my_field', '1', $returned_boolean_value=='1'?true:false); ?>
您可以使用以上其中一种......