Вам нужно json_encode
ваш $response
и передать его браузеру.Вы не перенаправляете в php при использовании ajax.Это не сработает.
PHP:
if ($result) {
$response = array(
'success' => true,
'message' => $this->localization->lang('success', array('name' => $this->localization->lang('task_tickets'))),
'redirect_url' => base_url() . '/some/url'
);
//$this->redirect->back();
} else {
$response = array(
'success' => false,
'message' => $this->localization->lang('error_update_message', array('name' => $this->localization->lang('task_tickets')))
);
}
echo json_encode($response);
exit;
JQUERY:
function reject(id) {
$.ajax({
type: 'get',
url: '<?= $this->url_generator->current_url() ?>/reject/' + id,
dataType: 'json',
function(response) {
if (response.success) {
$.growl.notice({message: response.message}); // this message probably won't display due to redirect
window.location.href = response.redirect_url; // redirect
} else {
$.growl.error({message: response.message});
}
}
});
}
Обратите внимание: поскольку вы хотите перенаправить сообщение об успехе в jquery, вероятно, выиграно 'Показывает, или если он показывает, он будет отображаться только менее секунды или около того, в зависимости от того, насколько быстро работает интернет клиентов.Вместо этого я бы предложил добавить флэш-сообщение или запрос с сообщением, чтобы при нажатии пользователем кнопки «ОК» он был перенаправлен.