Можно ли убрать кнопку для применения фильтра и сделать автоприменение при выборе опции фильтра? Знаю, что страница будет тупо перезагружаться, но все равно хотелось бы
Вопрос решил :)
Тема//template/module/filter.tpl
В конце скрипт был:
<script type="text/javascript"><!--
$('#button-filter').bind('click', function() {
filter = [];
$('.box-filter input[type=\'checkbox\']:checked').each(function(element) {
filter.push(this.value);
});
location = '<?php echo $action; ?>&filter=' + filter.join(',');
});
//--></script>
Заменить на:
<script type="text/javascript">
$(document).ready(function() {
// hide the "submit" button
$('#button-filter').hide();
// bind onChange event to the checkboxes
$('.click_checkbox').live('change', function() {
filter = [];
$('.box-filter input[type=\'checkbox\']:checked').each(function(element) {
filter.push(this.value);
});
window.location = '<?php echo $action; ?>&filter=' + filter.join(',');
});
});
//--></script>
И чуть выше добавить к вывода элемента <input type="checkbox" параметр class="click_checkbox"
Всё, кнопка скрывается, а фильтр начинает работать автоматически при клике на чекбокс.
И вторая фича, может кому пригодится.
По умолчанию выводится в виде столбца:
Чтобы было вот в таком виде (фильтры одной группы друг за другом):
нужно изменить опять же этот filter.tpl:
<div class="box box-filter">
<div class="box-heading"><?php echo $heading_title; ?></div>
<div class="box-content">
<table>
<?php foreach ($filter_groups as $filter_group) { ?>
<tr><td><span style="font-weight:700;font-size:14px" id="filter-group<?php echo $filter_group['filter_group_id']; ?>"><?php echo $filter_group['name']; ?></span></td></tr>
<?php foreach ($filter_group['filter'] as $filter) { ?>
<?php if (in_array($filter['filter_id'], $filter_category)) { ?>
<td style="padding: 1em 0 1em 1em;">
<input type="checkbox" value="<?php echo $filter['filter_id']; ?>" id="filter<?php echo $filter['filter_id']; ?>" checked="checked" class="click_checkbox" />
<label class="checkbox" for="filter<?php echo $filter['filter_id']; ?>"><?php echo $filter['name']; ?></label>
</td>
<?php } else { ?>
<td style="padding: 1em 0 1em 1em;">
<input type="checkbox" value="<?php echo $filter['filter_id']; ?>" id="filter<?php echo $filter['filter_id']; ?>" class="click_checkbox" />
<label class="checkbox" for="filter<?php echo $filter['filter_id']; ?>"><?php echo $filter['name']; ?></label>
</td>
<?php } ?>
<?php } ?>
</td> </tr>
<?php } ?>
</table>
<a id="button-filter" class="button"><span><?php echo $button_filter; ?></span></a>
</div>
</div>