Фильтр товаров по цене на yii2

645
15 сентября 2017, 22:10

Есть простая форма поиска по цене(форма с input type="text"), вводим цену и она ищет все товары по вводной цене, нужно его реализовать c input type="checkbox" или radio. То есть чтобы можно было кликнуть по определенному чекбоксу( к примеру цена от 0 до 1500р) и он искал товары в данном диапазоне . есть контроллер фильтра :

  public function actionFilter()
        {
            $filter = trim(Yii::$app->request->get('filter'));
            $this->setMeta('MAC-SHOPPER | ' . $filter);
            if (!$filter) {
                return $this->render('filter');
            }
            $query = Product::find()->where(['like', 'price', $filter]);
            //Создаем объект класса Pagination
            //Передаем тотал каунт - общее количество записей, которыe мы вытащим
            $pages = new Pagination(['totalCount' => $query->count(), 'pageSize' => 2, 'forcePageParam' => false, 'pageSizeParam' => false]);
            //Выполняем сам запрос
            //offset - с какой записи начинать
            //limit - количество записей
            $products = $query->offset($pages->offset)->limit($pages->limit)->all();
            return $this->render('filter', compact('products', 'pages', 'filter'));
        } 

форма во view, которая рендерится из этого контроллера :

<form method="get" action="<?php echo \yii\helpers\Url::to(['category/filter']) ?>">
                            <input type="text" placeholder="Search" name="filter"><br><br>
                            <button type="submit" class="btn btn-success">Найти</button>
                        </form>

view что выводится в результате поиска :

<h2 class="title text-center">Вы искали :<?php echo Html::encode($filter) ?></h2>
                    <?php if(!empty($products)): ?>
                        <?php $i = 0; foreach($products as $product) : ?>
                          <?php $mainImg = $product->getImage();?>
                        <div class="col-sm-4">
                            <div class="product-image-wrapper">
                                <div class="single-products">
                                    <div class="productinfo text-center">
                                         <?= Html::img($mainImg->getUrl('268x249'), ['alt' => $product->name])?>
                                        <h2>$<?php echo $product->price ?></h2>
                                        <p><a href="<?php echo \yii\helpers\Url::to(['product/view', 'id' => $product->id]) ?>"><?php echo $product->name ?></a></p>
                                        <a href="#" class="btn btn-default add-to-cart"><i class="fa fa-shopping-cart"></i>Add to cart</a>
                                    </div>

То есть нужно сделать условие , чтобы по клику на определенный чекбокс шел поиск по цене в определенном диапазоне.

Должно получиться примерное так :

READ ALSO
Проверить массив

Проверить массив

Если массив пустой выводиться сообщение "Ошибка в параметре, оно должно быть числом!"Если в массиве 'Слово' вновь выводится "Ошибка в параметре,...

269
ajax, метод POST

ajax, метод POST

Не понимаю, почему, если в отправке не указать путь к файлу, то будет ошибка 404?

268
Как вывести данные?

Как вывести данные?

Как мне обратиться к объекту, чтобы вывести World?

217
Фильтрация по выбранной радиокнопке yii2

Фильтрация по выбранной радиокнопке yii2

Есть три радиокнопки и кнопка submit в контроллере есть условия типа если выбран такой то чекбокс,то выводи из базы данных цену товаров диапазоне...

240