Перейти к содержанию
johser

Загрузка данных из контроллера в новое окно

Рекомендуемые сообщения

Всем привет!

 

Opencart 2.3.0.2.3

Есть ли возможность из контроллера загрузить данные из представления не только в текущее окно, а еще создать новое окно и загрузить туда другие данные ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не очень понятно, что имеется ввиду. Лучше на примере... 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть форма с кнопкой. При нажатии на кнопку отправляется POST-запрос.

Контроллер проверяет валидность введенных данных.

Если данные не прошли валидацию, то представление подгружается в тоже окно:

 

$this->response->setOutput($this->load->view('extension/module/my_module1', $data));

 

Если данные валидные, то нужно, чтобы представление опять же подгружалось в тоже окно, НО при этом создавалось еще одно в которое будет выводиться другое представление

$this->response->setOutput($this->load->view('extension/module/my_module1', $data));
$this->response->setOutput($this->load->view('extension/module/my_module2', $data));

 

Изменено пользователем johser

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

может просто всплывающее окно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
11 часов назад, fanatic сказал:

может просто всплывающее окно?

Пробовал.

POST-запрос уходит на сервер. Контроллер его обрабатывает и возвращает некую переменную , указывающую на валидность данных. После чего в представлении идет проверка этой переменной и если данные валидны, то открывается всплывающее окно. Срабатывает блокировка браузера , а так бы не надо...

Я искал информацию по открытию нового окна именно из контроллера, но так и не нашел...

 

Пока что придумал немного костыльное решение:

1. Каждый раз при изменении полей формы, отправляется аякс-запрос в контроллер, идет проверка валидности и возвращается переменная.

2. Если данные валидны, то форме выставляется target="_blank". Таким образом при нажатии на кнопку форма уже "знает" валидные ли данные и если это так, то представление открывается в новом окне. А если нет, то в текущем.

3. Если представление открывается в новом окне, то текущему по идее тоже нужно отправить POST-запрос, но опять же основываясь на переменной, которую получили от аякс-запроса делаются необходимые правки на уровне js.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.