在codeigniter的表单验证中使用多个回调
我将定义表单验证规则的逻辑分离到一个库中。我想在单个表单元素上应用多个回调函数在codeigniter的表单验证中使用多个回调,codeigniter,Codeigniter,我将定义表单验证规则的逻辑分离到一个库中。我想在单个表单元素上应用多个回调函数 $this->form_validation->set_rules('email', 'email', 'callback_db_check|callback_valid_email'); 现在我不知道怎么做。因为它不工作,我的意思是多重回调不工作。但是,如果我定义单回调,它工作得很好 function db_check(){ $this->CI->form_va
$this->form_validation->set_rules('email', 'email', 'callback_db_check|callback_valid_email');
现在我不知道怎么做。因为它不工作,我的意思是多重回调不工作。但是,如果我定义单回调,它工作得很好
function db_check(){
$this->CI->form_validation->set_message('db_check', 'Not found in db');
}
function valid_email(){
$this->CI->form_validation->set_message('db_check', 'Invalid email');
}
这只是示例代码。我已经扩展了表单验证库,以便可以从库中定义和调用验证逻辑。有什么建议吗
$this->CI->form_validation->set_rules('email' , 'Email' , 'required|valid_email|max_length[255]|callback_email|callback_call_db');
p、 您的回调函数应该总是返回true或false(您的示例不会返回任何内容)您可以在单个元素中应用多个回调函数 可以使用以下格式设置验证规则:
$this->form_validation->set_规则('email'、'email'、'callback_db_check | callback_valid_email')代码>
回调函数必须返回true或false
function db_check($user)
{
$sql=$this->db->query("select * from user where email like '%$user%' ");
if($sql->num_rows()>0)
{
return true;
}
else
{
$this->form_validation->set_message('db_check', 'Not found in db');
return FALSE;
}
}
function valid_email($user)
{
if(//condition)
{
return true;
}
else
{
$this->form_validation->set_message('valid_email', 'In valid email');
return FALSE;
}
}
在用户端
<div class="field_main">
<div class="fi_title">E-Mail Address *:</div>
<input type="text" id="email" name="email" value="<? echo set_value('email');?>" class="field_class" />
<? echo form_error('email','<div class="error">', '</div>');?>
</div>
电子邮件地址*:
OK yes在每个函数上返回true或false都很好,谢谢,但syntex是liek this i have$this->CI->form_validation->set_rules('email'、'email'、'required | valid| email | max| length[255]| callback email | callback u| call u|db');