我认为codeigniter表单验证类中存在一个错误。
如果值大于零,我的代码工作正常,但如果它为“0”,则set_value函数不起作用:
控制器:
$this->form_validation->set_rules('age', 'Age', 'required|is_natural');
查看:
<? if(set_value('age')) { ?>
<input id="age" name="age" type="text" value="<?=set_value('age')?>" />
<? } else { ?>
<input id="age" name="age" type="text" value="Age" />
<? } ?>
我做错了什么或这是一个错误?
答案 0 :(得分:1)
当值为0
时,您的表单字段不会重新填充,因为您的if
语句会将其评估为FALSE
,然后输出不带value
属性的表单字段。
所以,摆脱if
声明。你只想要这个:
<input id="age" name="age" type="text" value="<?=set_value('age')?>" />
set_value()
将返回值(如果提供了一个值),默认值或空字符串(如果没有提供值)。