Форма фильтра
Есть фоорма фильтра в ней предоставляется выбор характеристик шин, по нажатию на кнопку подобрать, страница перезагружается и выдает соответствующий запрос, но в форме фильтра выбранное значение не отображается, Как отобразить текст в форме выбора после перезагрузки страницы
<form action="?post_type=product&"> <div class="name">Ширина</div> <select class="btn dropdown-toggle selectpicker btnfull btn-warning" name="filter_ширина" size="1"> <option value="">Все</option> <option value="63">31</option> <option value="64" >32</option> <option value="65" >33</option> <option value="66" >34</option> <option value="45" >165</option> <option value="46" >175</option> <option value="47" >185</option> <option value="48" >195</option> <option value="49" >205</option> <option value="50" >215</option> <option value="51" >225</option> <option value="52" >235</option> <option value="53" >245</option> <option value="54" >255</option> <option value="55" >265</option> <option value="56" >275</option> <option value="57" >285</option> <option value="58" >295</option> <option value="68" >315</option> </select> <div class="name">Высота</div> <select class="btn dropdown-toggle selectpicker btnfull btn-warning" name="filter_высота" size="1"> <option value="">Все</option> <option value="40">10.50</option> <option value="41" >11.50</option> <option value="42" >12.50</option> <option value="43" >35</option> <option value="75" >40</option> <option value="37" >45</option> <option value="38" >50</option> <option value="36" >55</option> <option value="62" >60</option> <option value="34" >65</option> <option value="35" >70</option> <option value="39" >75</option> </select> <div class="name">Профиль</div> <select class="btn dropdown-toggle selectpicker btnfull btn-warning" name="filter_диаметр" size="1"> <option value="">Все</option> <option value="21">R13</option> <option value="22" >R14</option> <option value="23" >R15</option> <option value="24" >R16</option> <option value="25" >R17</option> <option value="26" >R18</option> <option value="27" >R19</option> <option value="28" >R20</option> </select> <div class="name">Сезон</div> <select class="btn dropdown-toggle selectpicker btnfull btn-warning" class="bu" name="filter_cезон" size="1"> <option value="">Все</option> <option value="19">Лето</option> </select> <div class="name">Бренд</div> <select class="btn dropdown-toggle selectpicker btnfull btn-warning" name="filter_бренд" size="1"> <option value="">Все</option> <option value="61">BFGoodrich</option> <option value="69" >Michelin</option> </select> <input class="btn btn-warning pf-black" id="bu" type="submit" value="ПОДОБРАТЬ" /> </form> |
Из адреса бери, ищи и подсвечивай. Если сервер в распоряжении, там сразу можно вывести selected на рендере.
|
Цитата:
|
Таа если были бы мозги, сделал бы, а так мне нужен готовый результат либо пример
|
Изначально использовался плагин YITH WooCommerce Ajax Product Filter, клиенту данный фильтр не понравился, теперь же на основе этого плагина сделал простенький фильтр. Теперь клиент частично рад , ему нужно чтобы при выборе значений они отображались после перезагрузки страницы
|
Русский в урлах это православно, но клиенту не понравится как будет выглядеть такая ссылка, я гарантирую это.
Берешь из ссылки все параметры и по именам ищешь. Нашел - втыкаешь value и готово. Ну или покажи серверный скрипт, который рендерит эти списки. Небось там все уже есть или было, а ты выпилил. |
В value значение отличается от текста
Я вообще понятия не имею (что плохо) как брать значение из url и вставить его в select, а серверный скрипт работает на основе плагина YITH WooCommerce Ajax Product Filter вся фишка в том, что на том плагине мы выбираем значение и он сразу же находит по выбранным значения, а этого клиент не хочет |
Ling,
Цитата:
window.onload=function(){ var settings = ["filter_width", "filter_height", "filter_diameter", "filter_season", "filter_brand"]; url = window.location.href; for (var i=0; i<settings.length; i++){ filterVal = url.match(new RegExp(settings[i] + "=\\d*"))[0].replace(settings[i] + "=", ""); if (filterVal) document.querySelector("[name='" + settings[i] + "'] [value='" + filterVal + "']").selected = true; } } списки переименовала в filter_width и т.д. |
Вот хорошее начало
var g={},q={}, L=W.location, P=L.href.split('?')[0], s=L.search.substr(1).split('&'), i,p; for(i=0; i<s.length; i++) if(p=s[i].split('=')) g[p[0]]=(p.length>1)?decodeURIComponent(p[1].replace(/\+/g, '%20')):null; Да этого нафиг не надо делать на клиенте. На сервер уходит запрос, там весь рендер, там и надо брать ключи и фтыкать selected. Просто ТС все поломал чтобы деньги не платить халявщик. |
Часовой пояс GMT +3, время: 13:39. |