Rule in controller:
$this->form_validation->set_rules('text', $this->lang->line('text_input_name'), 'required|trim|callback_ValidateTooltipTags['. $this->input->post('text') .']');
Callback in controller:
public function ValidateTooltipTags($string)
{
$this->load->model('library_model');
if($this->library_model->ValidateTooltipTags($string))
{
return TRUE;
}
else
{
$this->form_validation->set_message('ValidateTooltipTags', $this->lang->line('site_message_invalid_tooltip_tags'));
return FALSE; //or TRUE, it doesn't matter i always get validation error
}
}
I always get validation error, even if i change FALSE in callback to TRUE. Do you have any ideas, what is wrong? Thank you very much.
I think, I got it:
You have not to submit a value to the validation function, just call it:
$this->form_validation->set_rules('text', $this->lang->line('text_input_name'), 'required|trim|callback_ValidateTooltipTags');
Update:
You don't have to transmit the field value, but you have to write your callback function with this parameter, like you have done. Codeigniter is submitting this value for you:
public function ValidateTooltipTags($string)
{
$this->load->model('library_model');
if($this->library_model->ValidateTooltipTags($string))
{
return TRUE;
}
else
{
$this->form_validation->set_message('ValidateTooltipTags', $this->lang->line('site_message_invalid_tooltip_tags'));
return FALSE; //or TRUE, it doesn't matter i always get validation error
}
}
See also the documentation: http://www.codeigniter.com/userguide3/libraries/form_validation.html#callable-use-anything-as-a-rule
I got it, instead of using this:
$this->form_validation->set_rules('text', $this->lang->line('text_input_name'), 'required|trim|callback_ValidateTooltipTags['. $this->input->post('text') .']');
Use this:
$text = $this->input->post('text');
$this->form_validation->set_rules('text', $this->lang->line('text_input_name'), 'required|trim|callback_ValidateTooltipTags[$text]');
Or:
$this->form_validation->set_rules('text', $this->lang->line('text_input_name'), 'required|trim|callback_ValidateTooltipTags['. $this->input->post(\'text\') .']');
Thank you for your time, Joerg.