Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.09.2016, 08:39
Новичок на форуме
Отправить личное сообщение для Ling Посмотреть профиль Найти все сообщения от Ling
 
Регистрация: 10.03.2016
Сообщений: 8

Форма фильтра
Есть фоорма фильтра в ней предоставляется выбор характеристик шин, по нажатию на кнопку подобрать, страница перезагружается и выдает соответствующий запрос, но в форме фильтра выбранное значение не отображается, Как отобразить текст в форме выбора после перезагрузки страницы

<form action="?post_type=product&amp;">
<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>
Ответить с цитированием
  #2 (permalink)  
Старый 02.09.2016, 08:45
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Из адреса бери, ищи и подсвечивай. Если сервер в распоряжении, там сразу можно вывести selected на рендере.
Ответить с цитированием
  #3 (permalink)  
Старый 02.09.2016, 08:48
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от Ling
filter_ширина
Это будет веселый урл, типа такого https://ru.wikipedia.org/wiki/%D0%9A...8E%D0%B7%D0%B0
Ответить с цитированием
  #4 (permalink)  
Старый 02.09.2016, 08:51
Новичок на форуме
Отправить личное сообщение для Ling Посмотреть профиль Найти все сообщения от Ling
 
Регистрация: 10.03.2016
Сообщений: 8

Таа если были бы мозги, сделал бы, а так мне нужен готовый результат либо пример
Ответить с цитированием
  #5 (permalink)  
Старый 02.09.2016, 08:55
Новичок на форуме
Отправить личное сообщение для Ling Посмотреть профиль Найти все сообщения от Ling
 
Регистрация: 10.03.2016
Сообщений: 8

Изначально использовался плагин YITH WooCommerce Ajax Product Filter, клиенту данный фильтр не понравился, теперь же на основе этого плагина сделал простенький фильтр. Теперь клиент частично рад , ему нужно чтобы при выборе значений они отображались после перезагрузки страницы
Ответить с цитированием
  #6 (permalink)  
Старый 02.09.2016, 09:04
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Русский в урлах это православно, но клиенту не понравится как будет выглядеть такая ссылка, я гарантирую это.

Берешь из ссылки все параметры и по именам ищешь. Нашел - втыкаешь value и готово.

Ну или покажи серверный скрипт, который рендерит эти списки. Небось там все уже есть или было, а ты выпилил.
Ответить с цитированием
  #7 (permalink)  
Старый 02.09.2016, 09:25
Новичок на форуме
Отправить личное сообщение для Ling Посмотреть профиль Найти все сообщения от Ling
 
Регистрация: 10.03.2016
Сообщений: 8

В value значение отличается от текста
Я вообще понятия не имею (что плохо) как брать значение из url и вставить его в select,
а серверный скрипт работает на основе плагина YITH WooCommerce Ajax Product Filter
вся фишка в том, что на том плагине мы выбираем значение и он сразу же находит по выбранным значения, а этого клиент не хочет
Ответить с цитированием
  #8 (permalink)  
Старый 02.09.2016, 13:36
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

Ling,
Сообщение от Ling Посмотреть сообщение
как брать значение из url и вставить его в select
Вот пример:
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 и т.д.
Ответить с цитированием
  #9 (permalink)  
Старый 04.09.2016, 10:43
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Вот хорошее начало

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. Просто ТС все поломал чтобы деньги не платить халявщик.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма отправки сообщения с сайта hardwolf Элементы интерфейса 17 24.10.2016 15:00
Не работает всплывающая форма на второстепенных страницах denjer Javascript под браузер 0 22.04.2016 21:30
откуда была отправлена форма ? avanesov89 Общие вопросы Javascript 3 16.04.2014 17:50
не работает форма в окне, вызванном jquery page slide ikar jQuery 0 31.07.2011 22:55
Всплывающая форма в центре страницы для гостевой книги angel-13th Элементы интерфейса 8 05.02.2011 20:10