- Теория
- Теория
Фильтруем товары
Мы научились добавлять товары из массива на страницу. Теперь мы готовы приступить к фильтрации. Разработчики уже добавили фильтры в сценарий catalog.php
и в шаблон components/products_list.php
.
Наша задача — дополнить цикл, который отображает карточки на странице, так, чтобы на страницу добавлялись не все товары из массива, а только товары выбранной категории. Например, пользователь выбирает фильтр «Мебель» и на странице появляются товары только такого типа.
Как это реализовать? Для начала надо выяснить, какой фильтр сейчас выбран. У каждого фильтра есть свой адрес с параметром запроса product_type
:
catalog.php?product_type=furniture
Чтобы определить, какой фильтр выбрал пользователь, достаточно получить значение параметра запроса с помощью уже знакомой нам команды $_GET
.
Старшие разработчики уже создали переменную $type
со значением $_GET['product_type']
в сценарии.
Хорошо, мы знаем активный фильтр. Как теперь найти товары подходящей категории в массиве? Разработчики позаботились и об этом.
У каждого товара в массиве $items
есть ключ 'type'
. Это и есть категория товара.
[
'title' => 'Подвесная кровать Асусмер',
'type' => 'furniture',
'colors' => ['blue']
]
Нам достаточно внутри нашего цикла foreach
сравнить активный фильтр из $type
со значением 'type'
каждого товара в массиве. Если они совпадают, проверка пройдёт и товар появится на странице.
Для сравнения будем использовать условие. В круглых скобках запишем:
$item['type'] === $type
Будем использовать оператор сравнения ===
. Он называется строгое равенство и проверяет, равны ли значения слева и справа. Если равны, то условие истинно.
Давайте попробуем всё это на практике.
- index.html
Вы перешли на другую страницу
Кликните внутри мини-браузера, чтобы поставить фокус в это окно.