form_validation callbacks 问题
Codeigniter 的 form_validation, form_error 或 validation_errors 会在同一个时候出现多个错误提示。例如我有一个表单,里有两个fields, 如果两个fields空的话代, error 会出现"fields_1 is required", "fields_2 is required"
我想要的是 fields_1 and fields_2 are required.
是不是要用callback?
可是要怎么写,有没有任何教学呢?
你的需求callback满足不了。提示不能按你自定义的方式组合。只能改源码了。 本帖最后由 sdink 于 2012-7-6 02:06 编辑
先run进行验证,记得两个都不要加required,run()返回的值先存起来,然后在取出两个值在做验证,有两个方法。
$this->load->library ( 'form_validation' );
$val = $this->form_validation;
$val->set_rules ( 'fields_1', 'fields_1', 'trim|xss_clean' );
$val->set_rules ( 'fields_2', 'fields_2', 'trim|xss_clean' );/*********
$val->set_rules ( '*', '*', 'trim|required|xss_clean' );
************/
$run=$val->run ();
$fields_1=$val->set_value ( 'fields_1' );
$fields_2=$val->set_value ( 'fields_2' );
/*****
$fields_1 、$fields_2想咱样?
if(){
在这里终结,不然会执行后面的(最简单的如 return true/false,或是重定URL)
}
****/
/**
OK 上面没问题。现在来验证CI
**/
if($run == false ){
/***
我的个去, CI验证没通过。自己去显示CI的validation_errors
有的时候你可能想到要用CI的form_error 来显示错误,但是你会遇到一些情况
1 fields_1和fields_2本来就在 CI validation里通过,无法用form_error得到
2 你想独立设置form_error信息,但是你已经run()过了,
接下来你会不会考虑独立设置form_error信息后在run()在一次呢?
在这里终结,不然会执行后面的(最简单的如 return true/false,或是重定URL)
****/
}
$data['fields_1']=$val->set_value ( 'fields_1' );
$data['fields_2']=$val->set_value ( 'fields_2' );
/****
更新啊 插入啊 你随便
****/
页:
[1]