2015-06-28 4 views
1

Halo, я использую ajax для отправки формы в контроллер codeigniter. Я хочу перенаправить после сообщения ajax, но контроллер не перенаправляет.перенаправление не работает должным образом в codeigniter

Это мой Аякса

$.ajax({ 
     type:"POST", 
     url:form.attr("action"), 
     data:form.serialize(), 

     success: function(){ 

     }, 
     error: function(){ 
     alert("failure"); 
     } 
    }); 
    }); 
}); 

это мой контроллер

public function checkout_data(){ 
    $this->account_model->checkout_simpan(); 
    redirect('produk/payment/last_steps'); 
} 

это моя форма

<form class="form-horizontal col-md-offset-3" id="form-checkout" action="<?php echo base_url('produk/payment/checkout_data');?>"> 

Что случилось с моим кодом?

+0

Вам нужно перенаправить на функцию Ajax успеха с помощью JavaScript не из PHP –

ответ

0

Вы делаете это неправильный.

Что вы делаете сейчас: при отправке ajax-запроса на ваш сервер, выполняется метод checkout_data, а в нем есть перенаправление на другой URL-адрес. Но он работает на сервере . Таким образом, после перенаправления на produk/payment/last_steps выполняется метод last_steps (или что-то связанное с этим URL-адресом), и содержимое возвращается обратно в ajax-запрос.

Что вам нужно сделать:

использование Javascript функции перенаправления. Обычно это document.location E.g. document.location = "some/new/url". Итак, я полагаю, что ваш метод checkout_data должен возвращать некоторую строку. который содержит URL для перенаправления. Например:

public function checkout_data(){ 
    $this->account_model->checkout_simpan(); 
    echo 'produk/payment/last_steps'; 
} 

И в успехе ajax вы можете использовать:

success: function(data) { 
    // console.log(data) // uncomment to check what is received 
    document.location = data; 
}, 
Смежные вопросы