Поиск по фильтрам когда находимся в категории где товары
Цена договорная
Фраемворк ko7, но суть не важна, кто работал с фраемворками тот знает что это такое.
Есть категории, к ним привязаны товары, захожу в категорию, вижу товары, в категориях есть фильтры размеров, чекбоксы, кликнили на чекбокс, допустим чекбокс L, чекбокс XL, кликнули и идет поиск, на этой же странице, то есть отдельно результат поиска не надо выводить, а просто на этой же странице, показывает товары у которых есть данный размер допустим XL.
Не знаю как лучше реализовать, через method="GET" чтобы в урл добавлялся размер, как бы ссылка становилась, сайт/katalog-tovarov/stroitelnye-materialy/stroitelstvo-sten-i-peregorodok/gvl-gkl-dsp/?=XL и т.д, так что, что-то уже есть связанное с GET запросом. Я думаю это можно и доделать.
В шаблоне
<form method="GET" id="searchTov">
<li><input type="checkbox" name="gXS" id="gXS" value="XS"><label for="gXS">XS</label></li>
<li><input type="checkbox" name="gS" id="gS" value="S"><label for="gS">S</label></li>
<li><input type="checkbox" name="gM" id="gM" value="M"><label for="gM">M</label></li>
<li><input type="checkbox" name="gL" id="gL" value="L"><label for="gL">L</label></li>
<button type="submit">показать</button>
</form>
В контроллере в актионе:
$gXS = Arr::get($_GET, 'gXS');
$gS = Arr::get($_GET, 'gS');
$gM = Arr::get($_GET, 'gM');
$gL = Arr::get($_GET, 'gL');
$gXL = Arr::get($_GET, 'gXL');
if (!empty($gXS)) {
$productsFound->and_where('product.razmer', '=', $gXS);
}
if (!empty($gS)) {
$productsFound->and_where('razmer', '=', $gS);
}
if (!empty($gM)) {
$productsFound->and_where('razmer', '=', $gM);
}
if (!empty($gL)) {
$productsFound->and_where('razmer', '=', $gL);
}
if (!empty($gXL)) {
$productsFound->and_where('razmer', '=', $gXL);
}
Я сам плохо соображаю, пробовал так сделать, по примеру как у меня сделано на одном сайте, но там все товары на одной странице, и чет у меня не вышло.
Или же отправлять method="POST", сделать актион, где мы передаем с чекбокса name, это допустим XL, передали в актион, далее подключаемся к таблице products, ну и ищем у поля razmer, есть ли значение XL, ну и как-то все это вывести, чтоб показывало выведенные товары у которых есть размер XL, но надо учитывать категорию, я так понимаю ид категории еще брать и передавать в актион и там такой запрос надо делать, чтобы и категория учитывалась в которой добавлены данные товары по которым мы делаем поиск. Ну это я так поверхностно все понимаю, знающий может сразу сообразит.
Еще есть вариант конечно, товары же уже подгружены на странице, что если у короткого вывода товаров вывести размеры но скрыть, чтобы их собирать и сравнивать, то есть запрос с чекбокса XL, искать по собранному списку если находит то показывает данный товар, если нет, то скрывает, как-то так.
Мысли в слух накидал, вообщем жду предложение спецов.
Есть категории, к ним привязаны товары, захожу в категорию, вижу товары, в категориях есть фильтры размеров, чекбоксы, кликнили на чекбокс, допустим чекбокс L, чекбокс XL, кликнули и идет поиск, на этой же странице, то есть отдельно результат поиска не надо выводить, а просто на этой же странице, показывает товары у которых есть данный размер допустим XL.
Не знаю как лучше реализовать, через method="GET" чтобы в урл добавлялся размер, как бы ссылка становилась, сайт/katalog-tovarov/stroitelnye-materialy/stroitelstvo-sten-i-peregorodok/gvl-gkl-dsp/?=XL и т.д, так что, что-то уже есть связанное с GET запросом. Я думаю это можно и доделать.
В шаблоне
<form method="GET" id="searchTov">
<li><input type="checkbox" name="gXS" id="gXS" value="XS"><label for="gXS">XS</label></li>
<li><input type="checkbox" name="gS" id="gS" value="S"><label for="gS">S</label></li>
<li><input type="checkbox" name="gM" id="gM" value="M"><label for="gM">M</label></li>
<li><input type="checkbox" name="gL" id="gL" value="L"><label for="gL">L</label></li>
<button type="submit">показать</button>
</form>
В контроллере в актионе:
$gXS = Arr::get($_GET, 'gXS');
$gS = Arr::get($_GET, 'gS');
$gM = Arr::get($_GET, 'gM');
$gL = Arr::get($_GET, 'gL');
$gXL = Arr::get($_GET, 'gXL');
if (!empty($gXS)) {
$productsFound->and_where('product.razmer', '=', $gXS);
}
if (!empty($gS)) {
$productsFound->and_where('razmer', '=', $gS);
}
if (!empty($gM)) {
$productsFound->and_where('razmer', '=', $gM);
}
if (!empty($gL)) {
$productsFound->and_where('razmer', '=', $gL);
}
if (!empty($gXL)) {
$productsFound->and_where('razmer', '=', $gXL);
}
Я сам плохо соображаю, пробовал так сделать, по примеру как у меня сделано на одном сайте, но там все товары на одной странице, и чет у меня не вышло.
Или же отправлять method="POST", сделать актион, где мы передаем с чекбокса name, это допустим XL, передали в актион, далее подключаемся к таблице products, ну и ищем у поля razmer, есть ли значение XL, ну и как-то все это вывести, чтоб показывало выведенные товары у которых есть размер XL, но надо учитывать категорию, я так понимаю ид категории еще брать и передавать в актион и там такой запрос надо делать, чтобы и категория учитывалась в которой добавлены данные товары по которым мы делаем поиск. Ну это я так поверхностно все понимаю, знающий может сразу сообразит.
Еще есть вариант конечно, товары же уже подгружены на странице, что если у короткого вывода товаров вывести размеры но скрыть, чтобы их собирать и сравнивать, то есть запрос с чекбокса XL, искать по собранному списку если находит то показывает данный товар, если нет, то скрывает, как-то так.
Мысли в слух накидал, вообщем жду предложение спецов.
Отзывы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.