Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多个输入类型文本的Codeigniter表单验证_Codeigniter - Fatal编程技术网

多个输入类型文本的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'