Сохранение значений

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Сохранение значений

Сообщение yiiliveext »

Код: Выделить всё

function loadPage(url) {
        listview.load(url + ' #listview-products > *', function() {
           var next = $('ul.pagination > li.next a:first');
           var pageQuery = '&page=2';
           if (next) {
               var pageNextQuery = next.attr('href').split('?').pop();
               if (pageNextQuery.includes('per-page')) {
                   pageQuery += '&' + pageNextQuery.split('&').pop();
               }
               next.attr('href', url + pageQuery);
           }
        });
}
Последний раз редактировалось yiiliveext 2020.01.14, 22:31, всего редактировалось 2 раза.
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Сохранение значений

Сообщение unknownby »

yiiliveext писал(а): 2020.01.14, 14:29 Что значит подойдет? Infinit-scroll по умолчанию работает со ссылкой $('ul.pagination > li.next a:first').attr('href'), берет ее загружает по ней данные ajax-ом, фильтрует по элементу с itemsCssClass и добавляет в элемент с itemsCssClass вашей страницы, обновляете ссылку next из полученных данных. Только скорее всего страницу всегда вторую надо ставить после загрузки фильтров, надо подумать и немного подправить эту функцию.
В плане подойдет ли формирование целого URL таким образом, в том плане что можно было бы забирать таким образом первую часть \Yii::$app->controller->action->id вместо products

Код: Выделить всё

var url = '/products/'".$model->productscategory_url."'?' + state;
yiiliveext писал(а): 2020.01.14, 14:29 Можно и так, но всегда будет запрос к сессиям, даже если он не нужен.
А сессии могут находится в бд или редисе на отдельном сервере.
Если лишний запрос по сети вас устраивает, то можно и так.
Согласен, оставлю предложенный вами вариант.

Как приду, поменяю loadPage, формирование url и контроллер. Благодарю за советы и помощь :)
Оказалось не всё так просто с JS, как ожидалось. Отпишу потом что получилось :D
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Сохранение значений

Сообщение yiiliveext »

unknownby писал(а): 2020.01.14, 16:24 В плане подойдет ли формирование целого URL таким образом, в том плане что можно было бы забирать таким образом первую часть \Yii::$app->controller->action->id вместо products

Код: Выделить всё

var url = '/products/'".$model->productscategory_url."'?' + state;
\Yii::$app->controller->action->id может не совпадать с путем в урл.
Пример

Код: Выделить всё

'rules' => [
    'products/<category:\w+>' => 'shop/products-list'
]
Другой вопрос, зачем его вообще так формировать, если можно сделать

Код: Выделить всё

var url = window.location.pathname + '?' + state;
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Сохранение значений

Сообщение unknownby »

yiiliveext писал(а): 2020.01.14, 16:44

Код: Выделить всё

var url = window.location.pathname + '?' + state;
Сделал так

loadPage ругнулся
заменил .= на +=
Но дальше ругается на то, что split не может работать с next.attr('href') в котором undefined
После фильтрации пропадает пагинация, но если пролистать вниз, то он загрузит страницу с параметрами
/products/kategoria-3?page=2&per-page=8

Код: Выделить всё

listview.load(url + ' #listview-products > *', function() {
           var next = $('ul.pagination > li.next a:first');
           var pageQuery = '&page=2';
           if (next) {
           //сюда приходит next.attr('href') == undefined
               var pageNextQuery = next.attr('href').split('?').pop();
               if (pageNextQuery.includes('per-page')) {
                   pageQuery += '&' + pageNextQuery.split('&').pop();
               }
               next.attr('href', url + pageQuery);
           }
        });
У меня работает подгрузка автоматически при прокрутке. Пытаюсь понять в чем дело :)

P.S. Если задать фильтра, а потом нажать обновление страницы с GET параметрами, тогда норм.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Сохранение значений

Сообщение yiiliveext »

Подправил еще, должен быть рабочий вариант

Код: Выделить всё

function loadPage(url) {
        listview.load(url + ' #listview-products > *', function() {
           var next = $('ul.pagination > li.next a:first');
           var pageQuery = '&page=2';
          
           if (next.length === 0) {
              next = $('ul.pagination > li.prev a:first').clone();
              next.text($('ul.pagination > li.next span:first').text());
              $('ul.pagination > li.next').html(next).attr('class', 'next');
           }
           var pageNextQuery = next.attr('href').split('?').pop();
           if (pageNextQuery.includes('per-page')) {
               pageQuery += '&' + pageNextQuery.split('&').pop();
           }
           next.attr('href', url + pageQuery).attr('data-page', '2');
        });
}
Последний раз редактировалось yiiliveext 2020.01.14, 23:19, всего редактировалось 1 раз.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Сохранение значений

Сообщение yiiliveext »

Фидл для поиграться https://jsfiddle.net/zk8w4ro7/
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Сохранение значений

Сообщение unknownby »

yiiliveext писал(а): 2020.01.14, 22:39 Подправил еще, должен быть рабочий вариант

Код: Выделить всё

function loadPage(url) {
        listview.load(url + ' #listview-products > *', function() {
           var next = $('ul.pagination > li.next a:first');
           var pageQuery = '&page=2';
          
           if (next.length === 0) {
              next = $('ul.pagination > li.prev a:first').clone();
              next.text($('ul.pagination > li.next span:first').text());
              $('ul.pagination > li.next').html(next).attr('class', 'next');
           }
           var pageNextQuery = next.attr('href').split('?').pop();
           if (pageNextQuery.includes('per-page')) {
               pageQuery += '&' + pageNextQuery.split('&').pop();
           }
           next.attr('href', url + pageQuery).attr('data-page', '2');
        });
}
Поменял как тут, но все равно ругается на split, а так же при фильтрации, например, выбрано три товара при помощи фильтрации, у меня per-page=8. Пропадает пагинация, но если прокрутить вниз, всё равно страница ajax-ом обновляется как url?page=2&per-page=8 без моей фильтрации, которая была передана в url
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Сохранение значений

Сообщение yiiliveext »

А можно наплевать на скорость и сделать все гораздо проще

Код: Выделить всё

function loadPage(url) {
        listview.load(url + ' #listview-products > *', function() {
           ('ul.pagination').load(url + ' ul.pagination > *');
        });
}
Или переписать то же с $.ajax() чтобы два раза не грузить.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Сохранение значений

Сообщение yiiliveext »

unknownby писал(а): 2020.01.14, 23:24 Поменял как тут, но все равно ругается на split, а так же при фильтрации, например, выбрано три товара при помощи фильтрации, у меня per-page=8. Пропадает пагинация, но если прокрутить вниз, всё равно страница ajax-ом обновляется как url?page=2&per-page=8 без моей фильтрации, которая была передана в url
Без исходников страницы ничего подсказать не могу. А еще лучше выложить куда-то сайт, чтобы вживую можно было посмотреть, так будет быстрее.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Сохранение значений

Сообщение yiiliveext »

Вы это https://github.com/nirvana-msu/yii2-infinite-scroll расширение используете?
Если да, то попробуете такой вариант. Те что я выше приводил не будут работать, там не стандартная пагинация.

Код: Выделить всё

function loadPage(url) {
     $.get(url, function(data) {
           var pagination = $(data).filter('ul.pagination'); 
           $('#listview-products').html($(data).filter('#listview-products').html());
           if (pagination.length > 0) {
               $('ul.pagination').html(pagination.html());  
           } else {
               $('ul.pagination').remove();
           }
    });
}
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Сохранение значений

Сообщение unknownby »

yiiliveext писал(а): 2020.01.15, 01:25 Вы это https://github.com/nirvana-msu/yii2-infinite-scroll расширение используете?
Если да, то попробуете такой вариант. Те что я выше приводил не будут работать, там не стандартная пагинация.

Код: Выделить всё

function loadPage(url) {
     $.get(url, function(data) {
           var pagination = $(data).filter('ul.pagination'); 
           $('#listview-products').html($(data).filter('#listview-products').html());
           if (pagination.length > 0) {
               $('ul.pagination').html(pagination.html());  
           } else {
               $('ul.pagination').remove();
           }
    });
}
Расширение это.
Проверил с утра, фильтры не проходили. При фильтрации запрос был, а реакции не было от loadPage. Демо сайта есть, нужно обновить :) там без расширения
P.S. Если обновлю с этим loadPage, то работать как хотелось бы не будет. Закинуть изменения? :)
P.P.S.
Покажу наглядно, чтобы было понятно, что происходит. Изменил на чуть ранее версию loadPage, чтобы работали фильтры.
1. Загружена страница http://prntscr.com/qnvqpc в URL ничего не прописано еще.
2. Выбираю фильтр http://prntscr.com/qnvr4f блок с пагинацией пропал, к URL дописалось ?ProductsSearch[options]=1-1 http://prntscr.com/qnvrqj
3. Просто листаю вниз. Вот что происходит по запросам http://prntscr.com/qnvsj5 дальше срабатывает InfiniteScrollPager и добавляет мне просто вторую страницу http://prntscr.com/qnvtbz

Однако, если загрузить страницу /products/kategoria-11?ProductsSearch[options]=1-1 не через load, а путем обновления. Тогда InfiniteScrollPager не добавляет ничего и подгрузки нет.
Как-то надо запретить ему загружать данные, если отсутствует пагинатор. Или вариант удаления пагинатора, если он присутствует после фильтрации и создания нового как тут http://prntscr.com/qnvwnt с измененным URL
Для последнего скриншота сделал фильтр с тремя позициями и отображение по 2 элемента, чтоб появился пагинатор как нужно.

Посмотрел, что в $.get

Код: Выделить всё

console.log($(data).filter('#listview-products').html());
Выдает undefined
Тут возвращает объект и length: 0

Код: Выделить всё

console.log($(data).filter('#listview-products'));
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Сохранение значений

Сообщение yiiliveext »

unknownby писал(а): 2020.01.15, 07:55 Если обновлю с этим loadPage, то работать как хотелось бы не будет. Закинуть изменения? :)
Посмотрел, что в $.get

Код: Выделить всё

console.log($(data).filter('#listview-products').html());
Выдает undefined
Тут возвращает объект и length: 0

Код: Выделить всё

console.log($(data).filter('#listview-products'));
Изменение закидывайте, только пропишите в loadPage

Код: Выделить всё

console.log(data);
console.log(url);
console.log($(data).filter('#listview-products'));
console.log($(data).filter('ul.pagination'));
Судя по всему у вас в data что-то не то прилетает. Так как там нечему ломаться, я сэмулировал ситуацию c пагинацией этим компонентом и проверил эту функцию на работоспособность.
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Сохранение значений

Сообщение unknownby »

yiiliveext писал(а): 2020.01.15, 11:42 console.log(data);
console.log(url);
console.log($(data).filter('#listview-products'));
console.log($(data).filter('ul.pagination'));
[/code]
Судя по всему у вас в data что-то не то прилетает. Так как там нечему ломаться, я сэмулировал ситуацию c пагинацией этим компонентом и проверил эту функцию на работоспособность.
В data приходит вся страница, в url приходит тоже всё, а вот filter не корректно срабатывает
http://prntscr.com/qnx547
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Сохранение значений

Сообщение yiiliveext »

И еще одна поправочка

Код: Выделить всё

function loadPage(url) {
     $.get(url, function(data) {
           var pagination = $(data).filter('ul.pagination');
           console.log(data);
           console.log(url);
           console.log($(data).filter('#listview-products'));
           console.log($(data).filter('ul.pagination')); 
           $('#listview-products').html($(data).filter('#listview-products').html());
           if (pagination.length > 0) {
               $('ul.pagination').html(pagination.html());  
           } else {
               $('ul.pagination').remove();
               $('#listview-products').infiniteScroll('destroy');
           }
    });
}
Последний раз редактировалось yiiliveext 2020.01.15, 12:12, всего редактировалось 1 раз.
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Сохранение значений

Сообщение unknownby »

yiiliveext писал(а): 2020.01.15, 11:59 И еще одна поправочка

Код: Выделить всё

function loadPage(url) {
     $.get(url, function(data) {
           var pagination = $(data).filter('ul.pagination');
           console.log(data);
           console.log(url);
           console.log($(data).filter('#listview-products'));
           console.log($(data).filter('ul.pagination')); 
           $('#listview-products').html($(data).filter('#listview-products').html());
           if (pagination.length > 0) {
               $('ul.pagination').html(pagination.html());  
           } else {
               $('ul.pagination').remove();
               $container.infiniteScroll('destroy');
           }
    });
}
Откуда переменная $container у меня не определена :D
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Сохранение значений

Сообщение yiiliveext »

unknownby писал(а): 2020.01.15, 11:54 В data приходит вся страница, в url приходит тоже всё, а вот filter не корректно срабатывает
Разберитесь почему и вопрос решится.
Вот фидл, который демонстрирует что это должно работать.
https://jsfiddle.net/bsuha8vc/
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Сохранение значений

Сообщение yiiliveext »

unknownby писал(а): 2020.01.15, 12:06
yiiliveext писал(а): 2020.01.15, 11:59 И еще одна поправочка

Код: Выделить всё

function loadPage(url) {
     $.get(url, function(data) {
           var pagination = $(data).filter('ul.pagination');
           console.log(data);
           console.log(url);
           console.log($(data).filter('#listview-products'));
           console.log($(data).filter('ul.pagination')); 
           $('#listview-products').html($(data).filter('#listview-products').html());
           if (pagination.length > 0) {
               $('ul.pagination').html(pagination.html());  
           } else {
               $('ul.pagination').remove();
               $container.infiniteScroll('destroy');
           }
    });
}
Откуда переменная $container у меня не определена :D
Поменяйте на ваш контейнер, ну или var $container = $('#listview-products') допишите
$('#listview-products').infiniteScroll('destroy');

Фидл вместе с пагинацией https://jsfiddle.net/tx4e2n7k/
То же с функцией но без get-запроса https://jsfiddle.net/tx4e2n7k/2/
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Сохранение значений

Сообщение unknownby »

yiiliveext писал(а): 2020.01.15, 12:11 Поменяйте на ваш контейнер, ну или var $container = $('#listview-products') допишите
$('#listview-products').infiniteScroll('destroy');
Поменял, но почему не хочет находить через filter.

Код: Выделить всё

console.log(data);
console.log($(data));
Первый находит всю страницу от начала до конца
Второй преобразует всю страницу в объект, но у объекта нет как отдельного listview-products и ul.pagination
Только два главных элемента http://prntscr.com/qnxyo4
Преобразовало как структура идет http://prntscr.com/qnxzfv
Преобразовал верхний уровень, а не всю страницу по кусочкам и всё в объекты. Так бы нашло и сработало всё отлично.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Сохранение значений

Сообщение yiiliveext »

Они внутри должны быть, это же DOM.
Выложите то, что полностью прилетает в console.log(data)
Возможно у вас невалидная верстка или еще что-то, что не дает правильно работать методу filter().
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Сохранение значений

Сообщение unknownby »

yiiliveext писал(а): 2020.01.15, 12:54 Они внутри должны быть, это же DOM.
Выложите то, что полностью прилетает в console.log(data)
Возможно у вас невалидная верстка или еще что-то, что не дает правильно работать методу filter().
Вот вся страница

Код: Выделить всё

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="csrf-param" content="_csrf">
<meta name="csrf-token" content="vPSNiyhtyHj68vahmzEyAxBWmycnFWuVbQSnLjiAPIvYk_2mcFSRSqiir5njAH52RGfxcXF5Ms8qMMBrYtJ3-Q==">
    <title>Бензобуры</title>
    <meta name="description" content="Категория 11">
<meta name="keywords" content="Категория 11">
<link href="/assets/cea5e9b1/dist/assets/owl.carousel.min.css" rel="stylesheet">
<link href="/assets/cea5e9b1/dist/assets/owl.theme.default.min.css" rel="stylesheet">
<link href="/assets/2db06e80/css/bootstrap.css" rel="stylesheet">
<link href="/assets/a0aacc01/css/activeform.css" rel="stylesheet">
<link href="/assets/3b37c1fe/css/all.min.css" rel="stylesheet">
<link href="/assets/bf19b9d6/css/bootstrapXL.min.css" rel="stylesheet">
<link href="/assets/bf19b9d6/css/AdminLTE.min.css" rel="stylesheet">
<link href="/assets/bf19b9d6/css/_all-skins.min.css" rel="stylesheet">
<link href="/assets/bf19b9d6/css/nav-steps.css" rel="stylesheet">
<link href="/assets/bf19b9d6/css/site.css" rel="stylesheet"></head>
<body>

<div class="wrap content-wrappers">
    <div class="container">
        <div class="row">
            <div class="col-sm-3 mt-3 pull-right">
                
<form id="Search" class="form-vertical" action="/search" method="post" role="form">
<input type="hidden" name="_csrf" value="vPSNiyhtyHj68vahmzEyAxBWmycnFWuVbQSnLjiAPIvYk_2mcFSRSqiir5njAH52RGfxcXF5Ms8qMMBrYtJ3-Q==">    <div class="search-form">
        <div class="form-group highlight-addon field-productswidgetsearch-search">


<div class="input-group"><input type="text" id="productswidgetsearch-search" class="form-control" name="ProductsWidgetSearch[search]" placeholder="Поиск"><span class="input-group-btn"><button type="submit" class="btn btn-default"><i class="fas fa-search"></i></button></span></div>

<div class="help-block"></div>

</div>    </div>
</form>    <div class="blockSearch"></div>

            </div>
        </div>
    </div>
    <nav id="w2" class="navbar-inverse navbar"><div class="container"><div class="navbar-header"><button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#w2-collapse"><span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span></button></div><div id="w2-collapse" class="collapse navbar-collapse"><ul id="w3" class="navbar-nav navbar-left nav"><li><a href="/"><i class="glyphicon glyphicon-home"></i></a></li>
<li><a href="/contact"><i class="glyphicon glyphicon-earphone"></i></a></li>
<li><a href="/category/instruments">Инструменты</a></li>
<li><a href="/category/camping">Кемпинг</a></li>
<li><a href="/about">О нас</a></li>
<li><a href="/gallery">Галерея работ</a></li>
<li><a href="/order">Оставить заявку</a></li>
</ul></div></div></nav>
    <div class="container-fluid">
                
<div class="site-products">

    <div class="container-fluid">

        <div class="row">
            <div class="col-xs-12">
                
<div class="owlcarouselslider-stocks">

    <div id="owlcarouselstocks" class="owlcarouselstocks owl-carousel">
            <div class="item"><img src="/upload/img/1/fk3a66gixqLdI3Na59O4Wfi30LMXi15h.jpg" height="300" alt="Желтый слайд"></div>
            <div class="item"><img src="/upload/img/1/yJJbAyGC67TfBkX9nb8y9pP6gR9YnOTi.jpg" height="300" alt="Фиолетовый слайд"></div>
            <div class="item"><img src="/upload/img/1/NO2e-1LEcX1rBRZAPHMvxC_1h3-G0kMR.jpg" height="300" alt="Круглешки слайд"></div>
    
    </div>
</div>
            </div>
        </div>

        <div class="row">
            <div class="col-xs-12">
                <ul class="breadcrumb"><li><a href="/">Главная</a></li>
<li><a href="/category/instruments">Инструменты</a></li>
<li class="active">Бензобуры</li>
</ul>            </div>
        </div>

        <div class="row">
            <div class="col-lg-3 col-md-3 col-sm-3 col-xs-12">
                <div class="leftmenu">
    <div class="h2 text-center text-uppercase">Категории</div>

    <div class="row">
        <div class="col-xs-12">
            <div class="mt-3 list-group list-group-border-blue">
                                    <a class="list-group-item" href="/products/kategoria-1">Тепловые пушки<span class="badge bg-green">4</span></a>                                    <a class="list-group-item" href="/products/kategoria-6">Шлифмашины<span class="badge bg-green">2</span></a>                                    <a class="list-group-item" href="/products/kategoria-11">Бензобуры<span class="badge bg-green">25</span></a>                                    <a class="list-group-item" href="/products/kategoria-16">Миксеры<span class="badge bg-green">2</span></a>                            </div>
        </div>
    </div>
</div>
                                    <div class="specifications">

    <form id="ProductsSearch" class="form-vertical" action="/products/kategoria-11?ProductsSearch[options]=1-1" method="post" role="form">
<input type="hidden" name="_csrf" value="vPSNiyhtyHj68vahmzEyAxBWmycnFWuVbQSnLjiAPIvYk_2mcFSRSqiir5njAH52RGfxcXF5Ms8qMMBrYtJ3-Q==">
    <div class="row">
        <div class="col-xs-12">
            <div class="box box-solid">
                <div class="box-header bg-primary text-center btr-5">
                    <h2 class="box-title text-light text-uppercase">Фильтры</h2>
                </div>
                            <div class="box box-solid collapsed-box no-margin box-border-blue-filter">
                    <div class="box-header">
                        <h3 class="box-title">Размер</h3>
                        <div class="box-tools pull-right">
                            <button class="btn btn-default btn-sm" data-widget="collapse"><i class="fa fa-plus"></i></button>
                        </div>
                    </div>
                    <div style="display: none;" class="box-body box-body-filter">
                        
                        <div class="form-group highlight-addon field-productssearch-options-1">


<input type="hidden" name="ProductsSearch[options][1]" value=""><div id="productssearch-options-1"><div class="checkbox"><label><input type="checkbox" id="productssearch-options-1--0" name="ProductsSearch[options][1][]" value="1" data-index="0"> 30х50 см</label></div>
<div class="checkbox"><label><input type="checkbox" id="productssearch-options-1--1" name="ProductsSearch[options][1][]" value="2" data-index="1"> 20х100 см</label></div></div>

<div class="help-block"></div>

</div>                    </div>
                </div>
                            <div class="box box-solid collapsed-box no-margin box-border-blue-filter">
                    <div class="box-header">
                        <h3 class="box-title">Вес</h3>
                        <div class="box-tools pull-right">
                            <button class="btn btn-default btn-sm" data-widget="collapse"><i class="fa fa-plus"></i></button>
                        </div>
                    </div>
                    <div style="display: none;" class="box-body box-body-filter">
                        
                        <div class="form-group highlight-addon field-productssearch-options-2">


<input type="hidden" name="ProductsSearch[options][2]" value=""><div id="productssearch-options-2"><div class="checkbox"><label><input type="checkbox" id="productssearch-options-2--0" name="ProductsSearch[options][2][]" value="3" data-index="0"> 500 гр</label></div>
<div class="checkbox"><label><input type="checkbox" id="productssearch-options-2--1" name="ProductsSearch[options][2][]" value="4" data-index="1"> 1000 гр</label></div></div>

<div class="help-block"></div>

</div>                    </div>
                </div>
                            <div class="box box-solid collapsed-box no-margin box-border-blue-filter">
                    <div class="box-header">
                        <h3 class="box-title">Мощность</h3>
                        <div class="box-tools pull-right">
                            <button class="btn btn-default btn-sm" data-widget="collapse"><i class="fa fa-plus"></i></button>
                        </div>
                    </div>
                    <div style="display: none;" class="box-body box-body-filter">
                        
                        <div class="form-group highlight-addon field-productssearch-options-3">


<input type="hidden" name="ProductsSearch[options][3]" value=""><div id="productssearch-options-3"><div class="checkbox"><label><input type="checkbox" id="productssearch-options-3--0" name="ProductsSearch[options][3][]" value="5" data-index="0"> 1000 Вт</label></div>
<div class="checkbox"><label><input type="checkbox" id="productssearch-options-3--1" name="ProductsSearch[options][3][]" value="6" data-index="1"> 2500 Вт</label></div></div>

<div class="help-block"></div>

</div>                    </div>
                </div>
                            <div class="box box-solid collapsed-box no-margin box-border-blue-filter">
                    <div class="box-header">
                        <h3 class="box-title">Плотность</h3>
                        <div class="box-tools pull-right">
                            <button class="btn btn-default btn-sm" data-widget="collapse"><i class="fa fa-plus"></i></button>
                        </div>
                    </div>
                    <div style="display: none;" class="box-body box-body-filter">
                        
                        <div class="form-group highlight-addon field-productssearch-options-4">


<input type="hidden" name="ProductsSearch[options][4]" value=""><div id="productssearch-options-4"><div class="checkbox"><label><input type="checkbox" id="productssearch-options-4--0" name="ProductsSearch[options][4][]" value="7" data-index="0"> 500 гр/см3</label></div>
<div class="checkbox"><label><input type="checkbox" id="productssearch-options-4--1" name="ProductsSearch[options][4][]" value="8" data-index="1"> 1500 гр/см3</label></div></div>

<div class="help-block"></div>

</div>                    </div>
                </div>
                            <div class="box box-solid collapsed-box no-margin box-border-blue-filter">
                    <div class="box-header">
                        <h3 class="box-title">Тестовая</h3>
                        <div class="box-tools pull-right">
                            <button class="btn btn-default btn-sm" data-widget="collapse"><i class="fa fa-plus"></i></button>
                        </div>
                    </div>
                    <div style="display: none;" class="box-body box-body-filter">
                        
                        <div class="form-group highlight-addon field-productssearch-options-5">


<input type="hidden" name="ProductsSearch[options][5]" value=""><div id="productssearch-options-5"><div class="checkbox"><label><input type="checkbox" id="productssearch-options-5--0" name="ProductsSearch[options][5][]" value="9" data-index="0"> 40 мб</label></div></div>

<div class="help-block"></div>

</div>                    </div>
                </div>
                        </div>

        </div>
    </div>

    </form>
    <div class="helper"></div>
</div>
                            </div>
            <div class="col-lg-9 col-md-9 col-sm-9 col-xs-12">
                <div class="row">

    <div class="col-md-12">

        <div class="box box-solid">

            <div class="box-header">

                <div class="pull-left item-view-select">

                    <span class="far fa-lg fa-th-list" data-view_name="_product_item_list"></span>&nbsp

                    <span class="far fa-lg fa-th-large" data-view_name="_product_item"></span>&nbsp

                    <span class="far fa-lg fa-th" data-view_name="_product_item_th"></span>

                </div>

                <div class="pull-right item-sort-select">

                    По алфавиту:

                    <span class="far fa-lg fa-sort-alpha-down" data-view_name="_sort_alpha_down"></span>&nbsp

                    <span class="far fa-lg fa-sort-alpha-down-alt" data-view_name="_sort_alpha_up"></span>&nbsp

                    По цене:

                    <span class="far fa-lg fa-sort-numeric-down" data-view_name="_sort_numeric_down"></span>&nbsp

                    <span class="far fa-lg fa-sort-numeric-down-alt" data-view_name="_sort_numeric_up"></span>

                </div>

            </div>

        </div>

    </div>

</div>

                <div class="row">
                    <div id="listview-products" class="col-md-12">
                        <div id="listview_products" class="listview_products"><div class="row"><div class="item" data-key="32"><div class="col-md-12">
    <div class="panel panel-primary">
        <div class="panel-heading">
            <a href="/product/sajt-katalog-na-yii231">
                <h3 class="panel-title text-light">Сайт каталог на Yii2</h3>
            </a>
        </div>
        <div class="panel-body">
            <div class="row">
                <div class="col-sm-3">
                    <div class="relative">
                        <a href="/product/sajt-katalog-na-yii231">
                                                    <img src="/upload/img/1/JPoU9a6BbjWCU2DNpqDIRBbUoWxzTpDH.jpg" width="100%" height="150" alt="Сайт каталог на Yii2">                                                                            <img src="/upload/img/1/3as12okB_tDndk209yxLCxjWX-aJQly1.png" width="25%" alt="Скидка 20%" style="position: absolute; right: 0; top: 0;">                                                </a>
                    </div>
                </div>
                <div class="col-sm-9">
                    <div class="row">
                        <div class="col-sm-12">
                            <b>Артикул:</b><br/>
                            0000131                        </div>
                        <div class="col-sm-12">
                            <b>Категория товара:</b><br/>
                            Бензобуры                        </div>
                        <div class="col-sm-12">
                            <b>Описание товара:</b><br/>
                            <em>Сайт каталог на Yii2. На данном сайте можно посмотреть как выглядит сайт каталог сделанный на framework Yii2</em>
                        </div>
                        <div class="col-sm-12">
                            <b>Цена: <span class="text-red text-bold">100.00</span></b> BYN                        </div>
                        <div class="col-sm-12">
                            <a class="btn btn-success pull-right" href="/product/sajt-katalog-na-yii231">Подробнее <i class="glyphicon glyphicon-arrow-right"></i></a>                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
</div>
<div class="item" data-key="3"><div class="col-md-12">
    <div class="panel panel-primary">
        <div class="panel-heading">
            <a href="/product/primer-sajta-kataloga-na-yii2">
                <h3 class="panel-title text-light">Сайт каталог на Yii2</h3>
            </a>
        </div>
        <div class="panel-body">
            <div class="row">
                <div class="col-sm-3">
                    <div class="relative">
                        <a href="/product/primer-sajta-kataloga-na-yii2">
                                                    <img src="/upload/img/1/9P2ZHWSQrApaQrRBGL1zK1B-RRLlSIlw.png" width="100%" height="150" alt="Сайт каталог на Yii2">                                                                            <img src="/upload/img/1/uShFTMe2JUlf-UINCpxWdeHUlnFgdIpY.png" width="25%" alt="Супер цена" style="position: absolute; right: 0; top: 0;">                                                </a>
                    </div>
                </div>
                <div class="col-sm-9">
                    <div class="row">
                        <div class="col-sm-12">
                            <b>Артикул:</b><br/>
                            00003                        </div>
                        <div class="col-sm-12">
                            <b>Категория товара:</b><br/>
                            Бензобуры                        </div>
                        <div class="col-sm-12">
                            <b>Описание товара:</b><br/>
                            <em>Сайт каталог на Yii2. На данном сайте можно посмотреть как выглядит сайт каталог сделанный на framework Yii2</em>
                        </div>
                        <div class="col-sm-12">
                            <b>Цена: <span class="text-red text-bold">20.00</span></b> BYN                        </div>
                        <div class="col-sm-12">
                            <a class="btn btn-success pull-right" href="/product/primer-sajta-kataloga-na-yii2">Подробнее <i class="glyphicon glyphicon-arrow-right"></i></a>                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
</div></div><ul class="pagination"><li class="next"><a href="/products/kategoria-11?ProductsSearch%5Boptions%5D=1-1&amp;page=2&amp;per-page=2" data-page="1">Load more</a></li></ul></div>                    </div>
                </div>
            </div>
        </div>

        <div class="row">
            <div class="col-xs-12">
                
<div class="owlcarouselslider-category">

    <div id="owlcarouselcategory" class="owlcarouselcategory owl-carousel">
            <div class="item">
            <div class="box box-border-blue">
                <a href="/products/kategoria-1">
                    <div class="box-header bg-primary text-center">
                        <h3 class="box-title text-light">Тепловые пушки</h3>
                    </div>
                    <div class="box-body relative">
                        <img src="/upload/img/1/jaTfydSISWKKeAaInfCq3KUV5GkHJk0H.jpg" height="150" alt="Тепловые пушки">                    </div>
                    <div class="box-footer bg-primary text-center">
                        <div class="text-black">Цена аренды от 2.99 BYN</div>
                    </div>
                </a>
            </div>
        </div>
            <div class="item">
            <div class="box box-border-blue">
                <a href="/products/kategoria-6">
                    <div class="box-header bg-primary text-center">
                        <h3 class="box-title text-light">Шлифмашины</h3>
                    </div>
                    <div class="box-body relative">
                        <img src="/upload/img/1/kUVNPpBYuLPPvo_2JLK9k4UVRIyUDiCr.jpg" height="150" alt="Шлифмашины">                    </div>
                    <div class="box-footer bg-primary text-center">
                        <div class="text-black">Цена аренды от 2.49 BYN</div>
                    </div>
                </a>
            </div>
        </div>
            <div class="item">
            <div class="box box-border-blue">
                <a href="/products/kategoria-11">
                    <div class="box-header bg-primary text-center">
                        <h3 class="box-title text-light">Бензобуры</h3>
                    </div>
                    <div class="box-body relative">
                        <img src="/upload/img/1/bYQ_EnXHZ0jzFOzn7HTG2wvQDLyClD04.jpg" height="150" alt="Бензобуры">                    </div>
                    <div class="box-footer bg-primary text-center">
                        <div class="text-black">Цена аренды от 4.99 BYN</div>
                    </div>
                </a>
            </div>
        </div>
            <div class="item">
            <div class="box box-border-blue">
                <a href="/products/kategoria-16">
                    <div class="box-header bg-primary text-center">
                        <h3 class="box-title text-light">Миксеры</h3>
                    </div>
                    <div class="box-body relative">
                        <img src="/upload/img/1/gRBAY8-fFtJ7JvMSHGBWTMpzYnhrkj9k.jpg" height="150" alt="Миксеры">                    </div>
                    <div class="box-footer bg-primary text-center">
                        <div class="text-black">Цена аренды от 2.99 BYN</div>
                    </div>
                </a>
            </div>
        </div>
    
    </div>
</div>
            </div>
        </div>

    </div>

</div>
    </div>
</div>

<footer class="footer footer-wrappers-grey">
    <div class="container">
        <hr>
        <div class="row text-center">
            <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
                Сайт каталог на Yii2            </div>
            <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
                <ul class="list-inline">
                  <li><a class="enter-actions text-black" href="/">Главная</a></li>
                  <li><a class="enter-actions text-black" href="/contact">Контакты</a></li>
                  <li><a class="enter-actions text-black" href="/products">Товары</a></li>
                  <li><a class="enter-actions text-black" href="/about">О нас</a></li>
                  <li><a class="enter-actions text-black" href="/gallery">Галерея работ</a></li>
                  <li><a class="enter-actions text-black" href="/order">Заказ</a></li>
                </ul>
            </div>
        </div>
        <p class="pull-left">&copy; 2020 Все права защищены MARKET.AXE.BY - сайт каталог на Yii2</p>
    </div>
</footer>

<script src="/assets/9a38d83a/jquery.js"></script>
<script src="/assets/cea5e9b1/dist/owl.carousel.min.js"></script>
<script src="/assets/78ccf37f/yii.js"></script>
<script src="/assets/78ccf37f/yii.activeForm.js"></script>
<script src="/assets/2db06e80/js/bootstrap.js"></script>
<script src="/assets/a0aacc01/js/activeform.js"></script>
<script src="/assets/7d9bc8e3/jquery.infinitescroll.js"></script>
<script src="/assets/bf19b9d6/js/charcounter.js"></script>
<script src="/assets/bf19b9d6/js/bootbox.min.js"></script>
<script src="/assets/bf19b9d6/js/app.min.js"></script>
<script src="/assets/bf19b9d6/js/site.js"></script>
<script>$('.listview_products').infinitescroll({"contentSelector":".listview_products","loading":{"msgText":"<em>Загрузка товаров...</em>","finishedMsg":"<em>Товаров больше нет!</em>","img":"/assets/dfa5861a/ajax-loader.gif"},"maxPage":2,"itemSelector":".listview_products >","navSelector":"#listview_products ul.pagination","nextSelector":"#listview_products ul.pagination li.next a:first"}, function(){});</script>
<script>jQuery(function ($) {
jQuery("#owlcarouselstocks").owlCarousel(
{"autoplay":true,"autoplayTimeout":3000,"items":1,"loop":true}
);

var $el=jQuery("#ProductsSearch .kv-hint-special");if($el.length){$el.each(function(){$(this).activeFieldHint()});}
jQuery('#ProductsSearch').yiiActiveForm([], []);

    var checkboxes = [];
    $('input[type=checkbox]').on('click', function(){
        var selection = $(this).val();
        var id = $(this)[0].id;
        var check = $(this)[0].checked;
        var value = id.split('-');
        if(check){
            checkboxes.push(selection + '-' + value[2]);
        } else {
            checkboxes.splice(checkboxes.indexOf(selection + '-' + value[2]), 1);
        }

        pageState['checkboxes'] = 'ProductsSearch[options]=' + checkboxes;
        reloadContent();
    });


    $('.item-view-select > span').on('click', function(){

        pageState['itemView'] = 'itemViews=' + $(this).data('view_name');

        reloadContent();

    });


jQuery("#owlcarouselcategory").owlCarousel(
{"autoplay":true,"autoplayTimeout":2000,"items":6,"loop":true,"responsive":{"0":{"items":1},"479":{"items":2},"768":{"items":3},"979":{"items":4},"1199":{"items":6}}}
);


    var pageState = {};
    function reloadContent() {
        var data = '';
        $.each(pageState, function(key, value) {
            data += '&' + value; 
        });
        var state = data.substr(1);
        var url = window.location.pathname + '?' + state;
        window.history.pushState(url, 'Бензобуры', url);
        loadPage(url);
    }

    function loadPage(url) {
        $.get(url, function(data) {
           var pagination = $(data).filter('ul.pagination');
           console.log(data);
           console.log($(data));
           console.log(url);
           console.log($(data).filter('#listview-products'));
           console.log($(data).filter('ul.pagination')); 
           $('#listview-products').html($(data).filter('#listview-products').html());
           if (pagination.length > 0) {
               $('ul.pagination').html(pagination.html());  
           } else {
               $('ul.pagination').remove();
               $('#listview-products').infiniteScroll('destroy');
           }
        });
    }


    window.onpopstate = function(event) {
        var State = window.history.state;
        loadPage(url);
    };


            yii.confirm = function(message, ok, cancel) {
                bootbox.confirm({
                    message: message,
                    callback: function(result){ if (result) { !ok || ok(); } else { !cancel || cancel(); } },
                    buttons: { cancel: { className: "pull-left" } },
                });
            }
        
bootbox.setDefaults({locale: "ru"});

function GeneratePass(id) {
    var chars = "qazxswedcvfrtgbnhyujmkp123456789QAZXSWEDCVFRTGBNHYUJMKP";
    var max = 10;
    var size = chars.length - 1;
    var password = "";
    while (max--) {
        password = password + chars[Math.floor(Math.random() * (size + 1))];
    }
    $("#" + id).val(password);
//    $("#" + id + "2").val(password);
}
        


function renderTooltip() {

$(".btn-tooltip").tooltip({

    //selector: "[rel=tooltip]",

    placement: "top"

});

}

renderTooltip();

        
var $el=jQuery("#Search .kv-hint-special");if($el.length){$el.each(function(){$(this).activeFieldHint()});}
jQuery('#Search').yiiActiveForm([], []);
    $('#productswidgetsearch-search').on('input', function(){
        var data = $(this).val();
        if(data.length > 2){
            $.ajax({
                url: '/load-search',
                type: 'POST',
                data: {search:data},
                success: function(result) {
                    $(".blockSearch").html(result);
                }
            });
        } else {
            $(".blockSearch").empty();
        }
        return false;
    });
});</script></body>
</html>

Ответить