Как передать метод Controller, используя ajax в codeIgniter - PullRequest
0 голосов
/ 23 апреля 2019
public function index() {

    if ($this->session->userdata('admin_login') == 1)
        redirect(base_url() . 'index.php?admin/admin_dashboard', 'refresh');

    if ($this->session->userdata('teacher_login') == 1)
        redirect(base_url() . 'index.php?teacher/teacher_dashboard', 'refresh');

    if ($this->session->userdata('student_login') == 1)
        redirect(base_url() . 'index.php?student/student_dashboard', 'refresh');

    if ($this->session->userdata('parent_login') == 1)
        redirect(base_url() . 'index.php?parents/parents_dashboard', 'refresh');

    $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'] = '';

    }
    echo json_encode($response);
}

Я хочу передать index () через $ response ['redirect_url'] = ''; как пройти? я уже пытался создать маршруты, но не работает.

1 Ответ

0 голосов
/ 23 апреля 2019

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...