- Теория
- Теория
Фильтруем товары
Мы научились добавлять товары из массива на страницу. Теперь мы готовы приступить к фильтрации. Разработчики уже добавили фильтры в сценарий 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
Будем использовать оператор сравнения ===
. Он называется строгое равенство и проверяет, равны ли значения слева и справа. Если равны, то условие истинно.
Давайте попробуем всё это на практике.
Хорошо владеете JavaScript, но до сих пор не освоили Node.js? Записывайтесь на профессиональный курс «Node.js. Профессиональная разработка REST API». Цена 12 000 ₽.
- index.html
Вы перешли на другую страницу
Кликните внутри мини-браузера, чтобы поставить фокус в это окно.