Codeigniter未选中复选框值=空白?

时间:2010-12-03 15:14:25

标签: php codeigniter filter checkbox

我有这个数据库,我必须捕获很多是/否的问题,并且用户首选的方法是复选框。一切都按照预期的方式运作,除非涉及到后悔和展示价值观。未选中的框返回值“0”

无论如何要么忽略并且不在报告中显示“0”或者将默认值从“0”更改为空白“

6 个答案:

答案 0 :(得分:5)

result = $this->input->post('checkbox',TRUE)==null ? 0 : 1

答案 1 :(得分:2)

这与CodeIgniter无关。 :) 怎么样?

if($_POST['checkbox']==0) 
    $_POST['checkbox'] = '';

答案 2 :(得分:1)

它返回0,因为它是错误的,这是未选中时返回的复选框。只需在CI处理方法中添加一个if,如果复选框值== 0,则返回所需的值。

编辑:只是为了澄清,这与您的CI没有任何关系。我的意思是它返回0就是表单本身返回的内容 - 复选框的行为。要更改该值,需要快速检查CI代码,将0更改为所需的值。我假设您正在访问某处创建电子邮件的价值。

答案 3 :(得分:1)

由于复选框在未选中时返回空值,因此您在发布时不会获得值。以下是从复选框

返回未选中值的简单快速解决方案
<input type="hidden" name="cbox" value="0" />
<input type="checkbox" name="cbox" value="1" /> 

答案 4 :(得分:0)

if( ! $_POST['checkbox']) $_POST['checkbox'] = '';

答案 5 :(得分:0)

如果未选中复选框,则不会为其发送任何数据。 (如果选中,则发送value属性)。尝试阅读$_POST['checkbox']将导致PHP错误(除非您使用empty()isset(),这是特殊语言结构。)

如果未设置复选框数据,

this->input->post('checkbox')将返回FALSE,即如果未选中复选框数据。我担心,没有办法改变这个价值。如果你想要一个不同的值,你需要手动比较FALSE并使用不同的值。

最后,当您使用CodeIgniter的数据库访问API向数据库提交FALSE时,它将转换为“0”。这适用于数据库中的布尔列。当你读出一个布尔列时,无论你最初提交什么,你都会获得数据库的TRUE首选代码。 (可能的例外是sqlite,它是弱类型的,有点像PHP)。