[eluser]atno[/eluser]
The controller
Code:
<?php
class Members extends Controller
{
function Members()
{
parent::Controller();
}
function index()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('first_name', 'First Name', 'trim|required|xss_clean');
$this->form_validation->set_rules('last_name', 'Last Name', 'trim|required|xss_clean');
$this->form_validation->set_rules('company', 'Company', 'trim|required|xss_clean');
$this->form_validation->set_rules('email', 'Email', 'required|valid_email|callback_email_check');
if ($this->form_validation->run() == FALSE)
{
$this->load->model('Membermodel');
$data['members'] = $this->Membermodel->members();
$this->load->model('Groupmodel');
$data['groups'] = $this->Groupmodel->groups();
$this->load->view('member/add_member.html',$data);
}
else
{
$member['first_name'] = $this->input->post('first_name');
$member['last_name'] = $this->input->post('last_name');
$member['company'] = $this->input->post('company');
$member['email'] = $this->input->post('email');
$this->load->model('Membermodel');
$this->Membermodel->member_add($member);
redirect('members/');
}
}//index()
function email_check($str)
{
$this->load->model('Membermodel');
if ($this->Membermodel->member_unique($str) == TRUE)
{
$this->form_validation->set_message('email_check', 'Member already exists to your database.');
}
}//email_check()
The model
Code:
function member_unique($memberEmail)
{
$query = $this->db->get_where('m_member',array('user_id' => '30','email' => $memberEmail));
if ($query->num_rows() > 0 )
{
return TRUE;
}
return FALSE;
}
And it simply bypass setting the
So it never display "Member already exists to your database." even if it does.
If I add an
Code:
echo "Being called";
under
Code:
$this->form_validation->set_message('email_check', 'Member already exists to your database.');
i see it's running ONLY if it finds a match to the database but never FAIL the
Code:
form_validation->run()
Im going mad here, any help appreciated.
atno