тебе надо передать значение выбранного элемента из выпадающего списка в скрытые поля, если ты четко знаешь эти диапазоны то можно просто прописать ручками.
то есть на событие выбора элемнета списка повесить js функцию которая либо делить полученное значение на 2 числа и подставляет их (тогда значение списка будет выглядеть так "1500 2500" или "1500,2500" чтобы js мог эту строчку распарсить на 2 числа) либо отказаться от парсинга, а задавать в выпадающем списке в значении чисто 1,2 или 3 а в js функции ставить ему в соответствие пару чисел. я бы делал 2 вариант (хотя первый ничуть не хуже)
получилось бы примерно так
где-то выше прописываешь js функцию (так как она использует jQuery функции, не забудь проверить чтобы jQuery была подключена)
function put_price_value(value) {
var matrix = [ [0,1500], [1500,2500], [2500,5000] ],
index=parseInt(value) - 1;
jQuery('#price0').val(matrix[index][0]);
jQuery('#price1').val(matrix[index][1]);
}
а html получается такой:
<select name="price_range" onchange="put_price_value(this.options[this.selectedIndex].value)" class="textinputs"">
<option selected="" value="">цена</option>
<option value="1">0-1500</option>
<option value="2">1500-2500</option>
<option value="3">2500-5000</option>
</select>
<input type="hidden" id="price0" name="fields_filter[price][0]" value=""/>
<input type="hidden" id="price1" name="fields_filter[price][1]" value=""/>
все точно также, таже js функция которая парсит содержимое выбранного option в выпадающем списке, можете использовать мою js
function put_price_value(value) {
var matrix = [ [0,1500], [1500,2500], [2500,5000] ],
index=parseInt(value) - 1;
jQuery('#price0').val(matrix[index][0]);
jQuery('#price1').val(matrix[index][1]);
}
можете написать свою которая будет принимать строку с 2 числами и парсить её на 2 числа, тут уж как вам удобнее
Не могу понять как будет все выглядеть если ценовые значения следующие:
[1,500], [501,1000], [1001,1500], [1501,2000], [2001,3000], [3000,100000]
Подскажите пожалуйста
И еще проблема, если в форме присутствует значение size="1" Фильтрация не происходит.
<dl class="selectContainer">
<dt><label for="itemPrice">Подбор по ценовой категории:</label></dt>
<dd>
<select name="itemPrice" size="1" class="selectbox" id="itemPrice" name="price_range" onchange="put_price_value(this.options[this.selectedIndex].value)" class="textinputs"">
<option value="1">0-1500</option>
<option value="2">1500-2500</option>
<option value="3">2500-5000</option>
</select>
<input type="hidden" id="price0" name="fields_filter[price][0]" value=""/>
<input type="hidden" id="price1" name="fields_filter[price][1]" value=""/>
</dd>
</dl>
У вас все бы работало с исппользованием js кода написанного выше, но так как у вас используется NiceForm js плагин, то он уже подменяет оригинальный select на совокупность div, ul и т.п. элементов придавая им нужный вид. Поэтому функция onchange="put_price_value(this.options[this.selectedIndex].value)" прописанная вами к select игнорируется ,так как js плагин сам подставляет новые обработчики и пользователь выбирает уже ul элемент, а событие onchange у скрытого элемента select не наступит никогда.
Поэтому, если вы хотите добавить свой js обработчик, который разбивает выбранное в выпадающем списке значение на 2 составляющих и записывает их в скрытые поля
<input type="hidden" id="price0" name="fields_filter[price][0]" value=""/>
<input type="hidden" id="price1" name="fields_filter[price][1]" value=""/>
надо лезть в плагин NiceForm искать там обработчик события выбора выпадающего списка и добавлять уже там все манипуляции по разбивке значения цена на 2 скрытых поля