- Теория
- Теория
Фильтруем товары
Мы научились добавлять товары из массива на страницу. Теперь мы готовы приступить к фильтрации. Разработчики уже добавили фильтры в сценарий 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
Вы перешли на другую страницу
Кликните внутри мини-браузера, чтобы поставить фокус в это окно.