Когда пользователь загружает фотографию, она загружается через контроллер (profile / upload_picture), который выполняет проверку для типа файла, размера файла и т. Д.
Если проверка возвращает ошибку, ошибка отображается через Ajaxна переднем конце.Это работает.
Но если проверка не возвращает ошибок, я хотел автоматически загрузить другой контроллер / представление, которое позволяет пользователю обрезать изображение (profile / crop_picture).
Возможно ли это с помощью Jqueryиспользуя плагин формы malsup ?
Приведенный ниже код не работает как при успехе, я застреваю на странице загрузки.
Вот мой код:
jВопрос в поле зрения
$("#file_select").change(function(){
var options = {
type: 'post',
dataType: 'json',
resetForm: true,
beforeSubmit: function(){
$('#loading').show();
$('#validation_message').html('');
},
success: function(data){
if (data.success == 0) {
$('#loading').hide();
$('#validation_message').html(data.message).fadeIn();
} else {
$('body').load('profile/crop_picture');
}
}
};
$('#upload_form').ajaxSubmit(options);
});
контроллер upload_picture
function upload_picture()
{
if ($this->input->post('upload')) {
$upload = $this->profile_model->upload_picture();
if ($upload) { // if there are upload errors
$val['success'] = '0';
$val['message'] = '<div class="error_message" style="margin:20px 0">' . $upload . '</div>';
echo '<textarea>' . json_encode($val) . '</textarea>';
} else {
//redirecting here seems to have no effect
}
}
$data['selector'] = 'picture';
$data['records'] = $this->profile_model->get_user_data();
$string = $this->load->view('account/prf/profile_crop_vw', $data, TRUE);
$this->template->write('content', $string);
$this->template->render();
}