我需要有关如何检查数据库中是否已存在firstname和lastname然后使用codeiginiter调用回调的帮助。我现在完全陷入了困境。 顺便说一下,Firstname和Lastname是两个不同的字段。感谢
public function check_duplicate($str,$col)
{
$res = $this->db->get_where("patients",array(
'firstname' => 'Firstname',
'lastname' => 'Lastname'
));
if($res->num_rows()){
$this->form_validation->set_message('check_duplicate', 'The %s field already exists.');
return false;
} else {
return true;
}
}
答案 0 :(得分:1)
不需要回调。您可以改为使用is_unique
。
$this->form_validation->set_rules("firstname","First Name"."required|is_unique[tablename.columnname]");
$this->form_validation->set_rules("lastname","last Name"."required|is_unique[tablename.columnname]");
或者如果您想使用回调,请使用此
$this->form_validation->set_rules("firstname","First Name"."required|callback_check_name");
public function check_name($str)
{
$res = $this->db->get_where("users",array("fname" => $str));
if($res->num_rows()){
$this->form_validation->set_message('check_name', 'The %s field already exists.');
return false;
} else {
return true;
}
}
所以现在你必须编写2个回调函数来处理表单验证。你可以将它作为这样的回调。
$this->form_validation->set_rules("firstname","First Name"."required|callback_check_name[firstname]");
$this->form_validation->set_rules("firstname","First Name"."required|callback_check_name[lastname]");
public function check_name($str,$col)//passing one more parameter.
{
$res = $this->db->get_where("users",array($col => $str));
if($res->num_rows()){
$this->form_validation->set_message('check_name', 'The %s field already exists.');
return false;
} else {
return true;
}
}
答案 1 :(得分:0)
你可以使用ajax和jquery这里是一个如何实现
的链接http://tutsforweb.blogspot.com/2012/05/jquery-ajax-form-validation-in.html