多个输入类型文本的Codeigniter表单验证
我有一组文本框,如下所示多个输入类型文本的Codeigniter表单验证,codeigniter,Codeigniter,我有一组文本框,如下所示 <input type="text" size="10" value="<?php echo set_value('sizes[]'); ?>" name="sizes[]"/> <input type="text" size="10" value="<?php echo set_value('sizes[]'); ?>" name="sizes[]"/> <input type="text" size="10" v
<input type="text" size="10" value="<?php echo set_value('sizes[]'); ?>" name="sizes[]"/>
<input type="text" size="10" value="<?php echo set_value('sizes[]'); ?>" name="sizes[]"/>
<input type="text" size="10" value="<?php echo set_value('sizes[]'); ?>" name="sizes[]"/>
<input type="text" size="10" value="<?php echo set_value('sizes[]'); ?>" name="sizes[]"/>
<input type="text" size="10" value="<?php echo set_value('sizes[]'); ?>" name="sizes[]"/>
array(
'field' => 'sizes[]',
'label' => 'SIZES',
'rules' => 'required|xss_clean'
),
然后codeigniter检查每个输入框的值。如果每个文本框都被填满,那么codeigniter返回true。但是我想得到如果其中有人填写了,那么返回true
我该怎么做
谢谢您可以在控制器中创建自定义验证功能,并对输入进行自己的检查。首先,向控制器添加一个新函数:
function _is_valid($str, $field_name)
{
//First we see if the field name we are checking has multiple values
if (!is_array($this->input->post($field_name)))
return false;
//Let's get the posted values and see if any of them has a value:
foreach ($this->input->post($field_name) as $value)
if (strlen($value)) return true;
//If we get here that means there was no value posted:
return false;
}
接下来,更改字段的规则:
'rules' => 'required|xss_clean'
致:
您可以在此处阅读有关自定义验证函数的更多信息:
[http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#callbacks][1]
为什么要使用name=“size[]”作为html元素的名称?您只需使用“| |”(or)条件即可处理上述内容。但是我不能理解你对html元素的命名约定。从你的代码中不太清楚你想要实现什么。。。是否要在数组大小[]中存储字段名称?有五个文本框。我想将它们的值保存在数据库中。在表单验证时,codeigniter检查每个输入框中的值。如果每个文本框都被填满,那么codeigniter返回true。但我想知道,如果其中任何一个被填满了,那么返回true
'rules' => 'callback__is_valid[sizes]|xss_clean'