index()
- это функция, которая в соответствии с вашим кодом либо перенаправляет пользователя, либо показывает страницу.Они также не годятся для ответа ajax, поскольку перенаправление или представление будут происходить или отображаться только в запросе ajax, а не в окне просмотра пользователя.
Я предполагаю, что вы хотите добавить логику в свою функцию индекса, не повторяя слишком много.Простым решением является создание функции для перенаправления.
Создайте помощника и поместите в него эту функцию:
function group_redirect() {
$ci = &get_instance();
$ci->load->helper('url');
if ($ci->session->userdata('admin_login') == 1)
return base_url() . 'index.php?admin/admin_dashboard';
if ($ci->session->userdata('teacher_login') == 1)
return base_url() . 'index.php?teacher/teacher_dashboard';
if ($ci->session->userdata('student_login') == 1)
return base_url() . 'index.php?student/student_dashboard';
if ($ci->session->userdata('parent_login') == 1)
return base_url() . 'index.php?parents/parents_dashboard';
return false;
}
Тогда все остальное просто:
public function __construct() {
$this->load->helper('name_of_helper_with_function');
}
public function index() {
$redir = group_redirect();
if ($redir) {
redirect($redir);
}
$this->load->view('backend/login');
}
function ajax_login() {
$response = array();
$email = $_POST["email"];
$password = sha1($_POST["password"]);
$response['submitted_data'] = $_POST;
$login_status = $this->validate_login($email, $password);
$response['login_status'] = $login_status;
if ($login_status == 'success') {
$response['redirect_url'] = $redir;
}
echo json_encode($response);
}