Codeigniter表单验证几种输入类型文本

时间:2012-12-26 09:01:39

标签: 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" 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。但是我希望如果其中任何人填满然后返回真实

我该怎么做?

由于

1 个答案:

答案 0 :(得分:1)

您可以在控制器中创建自定义验证功能,并对输入执行自己的检查。首先,向控制器添加一个新功能:

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' 

要:

'rules'   => 'callback__is_valid[sizes]|xss_clean'

您可以在此处阅读有关自定义验证功能的更多信息:

[http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#callbacks][1]