Ошибка перенаправления в codeigniter

#codeigniter #redirect

#codeigniter #перенаправление

Вопрос:

Я пытаюсь получить fc_id иммунизации, а затем передать его в профилирование, но проблема в том, что redirect() не работает. Я успешно переношу свой fc_id, но проблема в том, что я не могу перейти к просмотру профилирования при нажатии кнопки.

Вот несколько фотографий, чтобы четко понять мой вопрос

Итак, вот мой код.

Вид:

 $(document).on("click", "#view_profile", function(e){
  e.preventDefault();

  var view_id = $(this).attr("value");

  $.ajax({
    url: "<?php echo base_url(); ?>immunization/view_profile",
    type: "post",
    dataType: "json",
    data: {
      view_id: view_id
    }
  });

});  
  <a href="#" value="${row.fc_id}" id="view_profile" class="btn btn-sm btn-outline-secondary">View Profile</a>  

Контроллер иммунизации:

     public function view_profile(){
        $this->load->helper('url');
        $this->load->library('session'); 

        if ($this->input->is_ajax_request()) {
            $view_id = $this->input->post('view_id');

            $this->session->set_tempdata('view_id', $view_id); 
            redirect('profiling/index');
    }
}  

Контроллер профилирования:

 public function index(){
        $this->load->helper('url');
        $this->load->library('session'); 
        $this->load->view('profiling');
    }  

Ответ №1:

Вы пытаетесь перенаправить запрос ajax, и это не сработает. Просто отправьте обратно какое-нибудь сообщение, если все в порядке, и в случае успеха ajax проверьте это сообщение и перенаправьте оттуда с location.href = yoururl помощью like:

В вашем php:

 $this->session->set_tempdata('view_id', $view_id); 
echo json_encode('msg' => 'ok');
  

js:

 $.ajax({
  url: "<?php echo base_url(); ?>immunization/view_profile",
  type: "post",
  dataType: "json",
  data: {
    view_id: view_id
  }
  success: function(resp){
    if (resp.msg == 'ok') location.href = 'profiling/index';
  }
  

});

Комментарии:

1. Это работа. Хотя я изменил некоторые из ваших ответов. Вот мой рабочий код. $этом->сессия->set_tempdata(‘view_id’, $view_id); $данных = массив(‘сообщение’ => ‘ОК’); Эхо json_encode($данных); затем в моем скрипте: $.технология AJAX({ URL-адрес: «<?php echo base_url(); ?>иммунизация/view_profile», тип: «пост», тип данных: «JSON с», Данные: { view_id: view_id }, успех: функция(соответственно){ если (респ.МСГ == ‘ОК’) местоположение. с href = ‘<?php echo base_url(); ?>профилирование/индекс’; } }); }); Спасибо большое за ответ на мой вопрос.