#php #cakephp #bootstrap-modal
#php #cakephp #bootstrap-modal
Вопрос:
Возможно ли отобразить представление (например,add.ctp) в модальном режиме начальной загрузки? И если да, то возможно ли визуализировать только html в файле add.ctp без загрузки макета по умолчанию?
Потому что в настоящее время я пытаюсь создать пользовательскую форму, подобную той, что находится в файле add.ctp, чтобы отобразить ее в модальном режиме, и это действительно мучительная попытка опубликовать и получить объекты json, чтобы отправить форму и заполнить сетки в моем приложении.
Ответ №1:
Да, это возможно.
Создать add.ctp в папке Ajax, например:
/Posts
index.ctp
/Ajax
add.ctp
в Postings::add() задайте Ajax-макет и с помощью js получите /posts/add и визуализируйте модальный.
Читать:
https://book.cakephp.org/3.0/en/controllers/components/request-handling.html
https://book.cakephp.org/3.0/en/views.html#layouts
Редактировать:
в контроллере
public function add()
{
// your code here ...
if ($this->getRequest()->is('ajax')) {
// render "add" view in Ajax folder and use "ajax" Layout
$this->render('Ajax/add', 'ajax')
}
}
https://book.cakephp.org/3.0/en/controllers.html#rendering-a-specific-template
РЕДАКТИРОВАТЬ 2 (часть jQuery) пример
<button type="button" data-toggle="modal" data-remote="<= $this->Url->build(/* ADD HERE YOUR PARAMS*/)
?>" data-target="#myModel">Open Model</button>
$('body').on('click', '[data-toggle="modal"]', function(){
$($(this).data("target") ' .modal-body').load($(this).data("remote"));
});
Комментарии:
1. Спасибо, вероятно, это то, что я ищу. Я пытаюсь найти рабочий пример рядом с книгой cakephp, у вас есть какой-нибудь на примете?
2. Просто создайте /Posts/Ajax/add.ctp, затем в браузере получите /posts/ajax/add. Затем в add method установите ajax layout и повторите попытку в браузере. Теперь у вас есть идея.
3. @Salines Можете ли вы предоставить код? Я сбиваюсь с пути и не могу найти полный рабочий пример…
4. @Salines Я больше разбираюсь в модальном режиме, я создал свой модальный режим в view.ctp, но при нажатии кнопки я хочу загрузить edit.ctp в этом модальном режиме. Мне нужна помощь относительно js-кода, который вызовет модальный файл и загрузит его с помощью edit.ctp вместо того, чтобы открывать его на новой странице
5. @dvn22, хорошо, я обновлю, но не тестировал, просто дам вам представление.