Умный фильтр. Делаем из чекбокосов селект
Запись от 24.06.2014
Есть множественное свойство типа список (размер обуви). На сайте надо сделать фильтрацию по одному любому размеру:
Для этого нужно переделать template.php и дописать script.js умного фильтра вот так:
Здесь [1] - это порядковый номер свойства в результирующем массиве.
script.js, здесь всё просто (хотя, в идеале на чистом JS переделать):
На выходе arrFilter получается, как и требуется для умного фильтра:
Для этого нужно переделать template.php и дописать script.js умного фильтра вот так:
<select class="input">
<option>Размер</option>
<?foreach($arResult["ITEMS"][1]["VALUES"] as $keyItem=>$arItem):?>
<option value="Y" data-name="<?=$arItem["CONTROL_NAME"]?>" <?if($arItem["CHECKED"]):?>selected<?endif;?>><?=$arItem["VALUE"];?></option>
<?endforeach;?>
</select>
Здесь [1] - это порядковый номер свойства в результирующем массиве.
script.js, здесь всё просто (хотя, в идеале на чистом JS переделать):
$(document).ready(function() { // После загрузки страницы
$("select.input").on("change", function() { // Дожидаемся изменения значения выпадающего списка
var value = $("select.input option:selected").attr("data-name"); // Сохраняем полученное значение value
$(".size select.input").attr("name", value); // Сохраняем его в имени select
$(".smartfilter").submit(); // И отправляем форму
});
});
На выходе arrFilter получается, как и требуется для умного фильтра:
[arrFilter_1_2047402582] => Y