Дополнительные фильтры
Доброго всем дня!
Вновь столкнулся с проблемой.
для вывода фильтра цены использую стандартные чанки
Решил я что дело то 2-х минут и засунул в чанк
то есть при выборе любого из radio в адресной строке появляется
Вновь столкнулся с проблемой.
для вывода фильтра цены использую стандартные чанки
&tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
&tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
Но появилась необходимость добавить radiobox со значениями типа «Не имеет значения» до 10000, до 20000 и т.д.Решил я что дело то 2-х минут и засунул в чанк
&tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
следующий код, прям под плейсхолдер [[+rows]]<label for="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" class="[[+disabled]]">
<input type="radio" name="[[+table]][[+delimeter]][[+filter]]" id="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" value="" [[+checked]] [[+disabled]]/> Не имеет значения <sup>[[+num]]</sup>
</label>
<label for="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" class="[[+disabled]]">
<input type="radio" name="[[+table]][[+delimeter]][[+filter]]" id="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" value="[[+value:default=`10000`]]" [[+checked]] [[+disabled]]/> до 10 000 <sup>[[+num]]</sup>
</label>
<label for="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" class="[[+disabled]]">
<input type="radio" name="[[+table]][[+delimeter]][[+filter]]" id="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" value="[[+value:default=`20000`]]" [[+checked]] [[+disabled]]/> до 20 000 <sup>[[+num]]</sup>
</label>
то есть сейчас чанк выглядит у меня вот так <fieldset id="mse2_[[+table]][[+delimeter]][[+filter]]">
<h4>[[%mse2_filter_[[+table]]_[[+filter]]]]</h4>
<div class="mse2_number_slider"></div>
<div class="mse2_number_inputs">
[[+rows]]
<label for="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" class="[[+disabled]]">
<input type="radio" name="[[+table]][[+delimeter]][[+filter]]" id="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" value="" [[+checked]] [[+disabled]]/> Не имеет значения <sup>[[+num]]</sup>
</label>
<label for="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" class="[[+disabled]]">
<input type="radio" name="[[+table]][[+delimeter]][[+filter]]" id="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" value="[[+value:default=`10000`]]" [[+checked]] [[+disabled]]/> до 10 000 <sup>[[+num]]</sup>
</label>
<label for="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" class="[[+disabled]]">
<input type="radio" name="[[+table]][[+delimeter]][[+filter]]" id="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" value="[[+value:default=`20000`]]" [[+checked]] [[+disabled]]/> до 20 000 <sup>[[+num]]</sup>
</label>
<label for="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" class="[[+disabled]]">
<input type="radio" name="[[+table]][[+delimeter]][[+filter]]" id="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" value="[[+value:default=`30000`]]" [[+checked]] [[+disabled]]/> до 30 000 <sup>[[+num]]</sup>
</label>
<label for="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" class="[[+disabled]]">
<input type="radio" name="[[+table]][[+delimeter]][[+filter]]" id="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" value="[[+value:default=`40000`]]" [[+checked]] [[+disabled]]/> до 40 000 <sup>[[+num]]</sup>
</label>
</div>
</fieldset>
На странице всё норм, за исключением того, что фильтр не совсем работает, он как бы работает, я вижу что в адресной строке добавляются значения при выборе radiobox'a, но вот не пойму как сделать так что бы при выборе удалялись старые значения.то есть при выборе любого из radio в адресной строке появляется
?ms|price=(от),(до),(то что я выбрал)
Комментарии: 2
Нужно сделать сброс значений слайдера вручную:
1. Добавить радиокнопку с определенным id, например my_button_1.
2. Прописать javascript на нажатие этой кнопки, чтобы он сбрасывал значение слайдера в этом блоке по умолчанию
3. Значения слайдера можно найти в объекте mSearch2.sliders.
То есть, при клике выбранные значения слайдера будут сбрасываться, и тогда они не попадут в запрос — то есть, не будут иметь значения. Иначе всё это выглядит слишком сложно.
Код примерно такой (не проверял!):
1. Добавить радиокнопку с определенным id, например my_button_1.
2. Прописать javascript на нажатие этой кнопки, чтобы он сбрасывал значение слайдера в этом блоке по умолчанию
3. Значения слайдера можно найти в объекте mSearch2.sliders.
То есть, при клике выбранные значения слайдера будут сбрасываться, и тогда они не попадут в запрос — то есть, не будут иметь значения. Иначе всё это выглядит слишком сложно.
Код примерно такой (не проверял!):
$(document).on('change', '#my_button_1', function() {
// Работаем только при активации кнопки
if (!$(this).is(':checked')) {return;}
// Передвигаем слайдер
var s = $('#mse2_ms\\|price .mse2_number_slider');
s.slider('values', 0, mSearch2.sliders['ms|price'][0]);
s.slider('values', 1, mSearch2.sliders['ms|price'][1]);
// Обновляем инпуты
$('#mse2_ms\\|price_0').val(mSearch2.sliders['ms|price'][0]);
$('#mse2_ms\\|price_1').val(mSearch2.sliders['ms|price'][1]);
// По желанию, можно сразу обновить результаты
mSearch2.load();
});
Спасибо! (: буду пробовать.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.