В этом случае я бы определенно пошел на вызов AJAX к универсальному контроллеру. Это позволяет отображать ошибки даже перед отправкой на исходную страницу.
Другой способ (немного более сложный) заключается в публикации данных формы в универсальном методе контроллера с передачей скрытого ввода, содержащего текущий URL.
Общий метод контроллера, обрабатывающий вашу форму, может затем перенаправить на страницу, на которой пользователь отправил форму, передав ей ошибки проверки или сообщение об успешном завершении с использованием переменных сеанса flash: $this->session->set_flashdata('errors',validation_errors())
может помочь (не проверено)
Хорошая вещь об этом заключается в том, что вы можете использовать универсальный метод обработки форм как для случая ajax (подавление перенаправления), так и для случая без ajax