在Codeigniter中,如何将第三个参数传递给回调(表单验证)?

时间:2012-01-05 10:31:02

标签: codeigniter callback validation codeigniter-2 validationrules

我目前正在使用Form Validation类(在Codeigniter上)和设置规则。

它有两个参数(codeigniter.com/user_guide/libraries/form_validation.html):

$this->form_validation->set_rules('username', 'Username', 'callback_test[abc]');

但是第三个参数怎么样?还有第四个......?有可能吗?

5 个答案:

答案 0 :(得分:14)

这不是正式但是有效

将参数拆分为','

$this->form_validation->set_rules('article_big_image','Gambar Besar','callback_check_picture[article_big_image,edit]');

function check_picture($image,$param){
    $param = preg_split('/,/', $param);
    $field = $param[0];
    $action = $param[1];
    echo $field.$action;
}

答案 1 :(得分:0)

不是没有扩展系统表单验证类。有关如何实现此目的的信息,请查看此article

或者,您可以使用以下方法访问回调函数中的post变量:

$this->input->post('field_name');

可能会或可能不会帮助你。

答案 2 :(得分:0)

您可以使用Array获取更多字段的更多参数,如下所示:

 $error = array(

                array(
                'field' => 'check', // the field name will come here
                'label' => 'Check',
                'rules' => 'required|here you can put the callback Function'
                )
          );

答案 3 :(得分:-1)


    $this->form_validation->set_rules('article_big_image','Gambar','callback_check_picture[article_big_image,edit]');
    function check_picture($image,$param){
        $param = explode(',', $param);
        $field = isset($param[0])?$param[0]:'';
        $action = isset($param[1])?$param[1]:'';
       echo $field.$action;
   }

答案 4 :(得分:-2)

您可以传递给规则 |callback_handle_is_unique_value_combinations[val1,val2]

比,  public function callback_handle_is_unique_value_combinations($str, $field) { $fields = explode(',', $field); $val1 = $fields[0]; $val2 = $fields[1];

然后你做了你的cponarisons