Кстати, сервер то отвечает чистыми данными и это не такой и большой объем будет, тем более если только нужное, а не все скопом. А их то можно поместить в data атрибуты, по которым потом строить/заполнять панель, без запросов сервера.
|
Да, панель уже есть на странице, вот ее код
<div class="modal" id="fast-view"> <div class="modal-main modal-view"> <div class="modal-view-navigation flex flex-between"> <a data-pjax="0" href="/#" class="button button-prev js-fast-view" onclick="return false;"> <span class="icon mr-10"></span> Предыдущий товар </a> <a data-pjax="0" href="/#" class="button button-next js-fast-view" onclick="return false;"> Следующий товар товар <span class="icon ml-10"></span> </a> </div> <div class="modal-wrap"> <span class="modal-close js-close icon"></span> <div id="fast-view-container">Загружаем...</div> </div> <a data-pjax="0" href="/#" class="button button-full">Перейти к полной карточке товара</a> </div> </div> По клику на кнопке ей добавляется класс show-modal и подгружаются данные. Вот Вы говорите в нее что-то вставить, проще пареной репы. Но это что-то нужно как-то получить? Как получать? Тем же контроллером, что показывает подробную информацию о товаре? Но он передает полученную информацию в шаблон. В шаблоне она выводится в блоке с идентификатором details_container. Я так думаю, что его-то и нужно как-то вставлять в панель этот блок <div id="fast-view-container">Загружаем...</div> ? |
Отвяжите вообще данные, которые нужно потом показать на странице, от шаблонизатора. Получить эти данные при запросе страницы и поместить их в атрибуты не будет проблемой? К примеру, пусть карточки товаров содержаться в неком слое. Если наведение мыши повешено на него, то добавляем ему атрибут data-prop, в который помещаем данные о товаре (и так для всех товаров). Данные не просто json, но еще пропущенные через htmlspecialchars. Допустим, для примера эта массив:
Array ( [id] => 12 [base] => /path/ [ims] => Array ( [0] => Array ( [name] => img1.jpg [title] => text ) [1] => Array ( [name] => img2.jpg [title] => text ) [2] => Array ( [name] => img3.jpg [title] => text ) ) ) Здесь все что требуется для вывода, например base, это путь к файлам изображений, и все прочее, и только необходимое. Вывод на страницу, это: <div data-prop="{{prop}}">....</div> где prop, это массив/объект переданный в шаблон как htmlspecialchars(json_encode($data), ENT_QUOTES). При наведении мыши из атрибута получается объект как: var obj = $(this).data('prop'); //или у найденного родителя если обработчик не у родителя И коли панель уже на странице, то размещаем эти данные в панели или строим по ним html код, который размещаем в панели. Остается показать панель, для чего используем ее метод. Например, если это Bootstrap, то способов показа ее много. Это выгоднее чем терзать сервер, да и ответ не обязательно мгновенный. А объем данных не такой и большой будет. |
Спасибо за помощь, буду пытаться. Ну а если не получится, то тогда тупо приделаю к каждому товару модалку и все.
Успехов Вам. |
Часовой пояс GMT +3, время: 06:53. |