Камрады! помогите с проблемой, пожалуйста! Криво работает отбор - отбирает по любому из параметров, без группировок http://energoplus.com.ua/ т.е., если авт. выключатель 1Р и хар-ка С, то при выборе 2-х параметров выпадают все с хар-кой С и все 1Р фильтрация в левом блоке Код: <? if (isset($_URL[1]) && $_URL[1] == 'cat') { ?> <div class="filter"> <div class="p5"> <!-- <h3>Цена</h3> <input class="w228" type="range" min="0" max="100" step="1" value="50"> <div class="f12 tac">от <b>0</b> до <b>12230</b> грн.</div>--> <? $getSubStatus = $_MOD['market']->getAllCategoryHierarchy($_URL[2]); if ($getSubStatus) { if (isset($_GET['filter'])) {?> <h1>Фильтрация товара</h1> <? $filter_1 = explode(";", $_GET['filter']); $filter_3 = ""; foreach ($filter_1 as $filter_1_key => $filter_1_val) { $filter_2 = explode(":", $filter_1_val); if (isset($filter_2[1])) { $filter_3 .= $filter_2[1] . ","; } } $filter_3 = array_filter( explode(",", $filter_3), function($el) { return !empty($el); }); } foreach ($getSubStatus as $getSubStatus_key => $getSubStatus_val) { $res = ""; $res = $_MOD['market']->getAllFiltersCategory($getSubStatus_val); if ($res) { foreach ($res as $res_key) { ?> <div data-id="<?= $res_key['id'] ?>" class="block_filter"> <h3><?= $res_key['name'] ?></h3> <? if ($res_key['value'] && count($res_key['value']) != 0) { foreach ($res_key['value'] as $value_val) { ?> <input name="<?= $res_key['id'] ?>" type="checkbox" id="<?= $value_val['id'] ?>" value="<?= $value_val['id'] ?>" <?= (isset($filter_3) && in_array($value_val['id'], $filter_3)) ? 'checked' : '' ?> /> <label for="<?= $value_val['id'] ?>"><?= $value_val['variant'] ?></label><br> <? } ?> <? } ?> </div> <? } ?> <? } } } ?> <? if (isset($_GET['filter'])) { ?> <div class="tac pt20"><button class="clear_filter">Сбросить</button></div> <? } ?> </div> </div> <script> function filter() { var selector = ".filter"; var str = ""; $(selector + " .block_filter").each(function() { var id_filter = $(this).attr('data-id'); var strId = ""; var count_checked = $(selector + " [name=" + id_filter + "]:checked").size() - 1; $(selector + " [name=" + id_filter + "]:checked").each(function(i) { var value = $(this).val(); if (value !== "") { strId += value; } if (i !== count_checked) { strId += ","; } }); if (strId !== "") { str += id_filter + ":"; str += strId; str += ";"; } }); $.post('', {type: 'filter', id: str, url: location.href}, function(url) { location.href = url; }); } $(function() { $('.filter input').change(function() { filter(); }); $('.clear_filter').click(function() { $.post('', {type: 'filter', id: "", url: location.href}, function(url) { location.href = url; }); }); }); </script> <? } ?>