Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 22.09.2019, 14:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Кстати, сервер то отвечает чистыми данными и это не такой и большой объем будет, тем более если только нужное, а не все скопом. А их то можно поместить в data атрибуты, по которым потом строить/заполнять панель, без запросов сервера.
Ответить с цитированием
  #32 (permalink)  
Старый 22.09.2019, 14:53
Аспирант
Отправить личное сообщение для LingVist Посмотреть профиль Найти все сообщения от LingVist
 
Регистрация: 21.09.2010
Сообщений: 39

Да, панель уже есть на странице, вот ее код
<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">&#xf10b;</span>
            Предыдущий товар
        </a>
        <a data-pjax="0" href="/#" class="button button-next js-fast-view" onclick="return false;">
            Следующий товар товар
            <span class="icon ml-10">&#xf109;</span>
        </a>
    </div>
    <div class="modal-wrap">
        <span class="modal-close js-close icon">&#xf116;</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>

?
Ответить с цитированием
  #33 (permalink)  
Старый 22.09.2019, 15:25
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Отвяжите вообще данные, которые нужно потом показать на странице, от шаблонизатора. Получить эти данные при запросе страницы и поместить их в атрибуты не будет проблемой? К примеру, пусть карточки товаров содержаться в неком слое. Если наведение мыши повешено на него, то добавляем ему атрибут 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, то способов показа ее много.

Это выгоднее чем терзать сервер, да и ответ не обязательно мгновенный. А объем данных не такой и большой будет.
Ответить с цитированием
  #34 (permalink)  
Старый 22.09.2019, 15:35
Аспирант
Отправить личное сообщение для LingVist Посмотреть профиль Найти все сообщения от LingVist
 
Регистрация: 21.09.2010
Сообщений: 39

Спасибо за помощь, буду пытаться. Ну а если не получится, то тогда тупо приделаю к каждому товару модалку и все.
Успехов Вам.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести данные JSON в аттрибут data-* wintersoft Общие вопросы Javascript 7 09.08.2018 10:15
как получить данные с другого сайта? dobush jQuery 2 19.01.2013 17:39
Как убрать боковой скрол в модальном окне? pahannew Элементы интерфейса 6 08.01.2013 13:13
Как получить данные переданные методом POST? layla Общие вопросы Javascript 3 13.12.2010 10:16
как получить данные из reader.xmlData lfs2008 ExtJS 3 02.11.2010 19:12