Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Добрые люди помогите с ползунком jquery ui slider (https://javascript.ru/forum/misc/73225-dobrye-lyudi-pomogite-s-polzunkom-jquery-ui-slider.html)

SERblY 29.03.2018 23:34

Добрые люди помогите с ползунком jquery ui slider
 
Вложений: 1
Суть такова, сам как смог прикрутил, тоесть если его двигаешь в инпутах меняется все нормально, поиск по этим пораметрам срабатывает, но вот незадача, если обновить страничку то в инпутах диапазон остаетсся тот который выбирали, а ползунок на стандартные исходные возвращаеться, ребят помогите, как сделать чтобы он тоже оставался
Вот код самого ползунка (скрипта) мб что то лишнее или не так настроил, надеюсь поможете:
<script src="/assets/jquery-ui/jquery-ui.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){


/* слайдер цен */

jQuery("#slider").slider({
	min: 0,
	max: 1000000,
	step: 500,
	range: true,
	stop: function(event, ui) {
		jQuery("input.minCost").val(jQuery("#slider").slider("values",0));
		jQuery("input.maxCost").val(jQuery("#slider").slider("values",1));
		
    },
    slide: function(event, ui){
		jQuery("input.minCost").val(jQuery("#slider").slider("values",0));
		jQuery("input.maxCost").val(jQuery("#slider").slider("values",1));
    }
});

jQuery("input.minCost").change(function(){

	var value1=jQuery("input.minCost").val();
	var value2=jQuery("input.maxCost").val();

    if(parseInt(value1) > parseInt(value2)){
		value1 = value2;
		jQuery("input.minCost").val(value1);
	}
	jQuery("#slider").slider("values",0,value1);	
});

	
jQuery("input.maxCost").change(function(){
		
	var value1=jQuery("input.minCost").val();
	var value2=jQuery("input.maxCost").val();
	
	if (value2 > 1000000) { value2 = 1000000; jQuery("input.maxCost").val(1000000)}

	if(parseInt(value1) > parseInt(value2)){
		value2 = value1;
		jQuery("input.maxCost").val(value2);
	}
	jQuery("#slider").slider("values",1,value2);
});



// фильтрация ввода в поля
	jQuery('input.maxCost, input.minCost').keypress(function(event){
		var key, keyChar;
		if(!event) var event = window.event;
		
		if (event.keyCode) key = event.keyCode;
		else if(event.which) key = event.which;
	
		if(key==null || key==0 || key==8 || key==13 || key==9 || key==46 || key==37 || key==39 ) return true;
		keyChar=String.fromCharCode(key);
		
		if(!/\d/.test(keyChar))	return false;
	
	});


});



</script>


вот кусок формы где ползунок и инпуты:
<div class="col-md">
				<input style="padding-left:3px; padding-right:3px" class="price_field minCost form-control" name="{%$id%}[over]" type="number" step="500.00" id="" placeholder="Цена, {%$locale.888%}" value=""/>
				</div>
				<div class="col-md">
				<input style="padding-left:3px; padding-right:3px" class="price_field maxCost form-control" name="{%$id%}[less]" type="number" step="500.00" placeholder="Цена, {%$locale.889%}" id="bs_{%$field.id%}" value=""/>
			</div>

вот подгружаеться сам ползунок: прям ниже инпутов сразу (я просто разделил чтобы понятнее было)
<div class="sliderCont">
					<div id="slider"></div>
			</div>


Прикреплю еще скрин на всякий чтобы было яснее! Надеюсь на помощь! Спасибо!

Nexus 29.03.2018 23:40

Данные из инпутов передались на сервер для фильтрации данных, при отрисовке этих инпутов нельзя в них поместить переданные на сервер значения?

рони 29.03.2018 23:52

SERblY,
slider ui сохранение

SERblY 30.03.2018 13:16

так как лучше сделать я так и не понял, Вы извините конечно мб я туплю. просто не сильно шарю в скрипте, так поставить могу что то подправить но вот как сделать лучше чтобы не так на отмашку а чтобы рабочий вариант хороший был не допру никак :(

Nexus 30.03.2018 13:25

SERblY, правильнее будет вывести в input переданное фильтру значение и при инициализации слайдера воспользоваться ими.

Сохранять значения в localStorage по-моему глупо, когда есть возможность модифицировать backend.

рони 30.03.2018 13:41

SERblY,
проще способ Nexus,
на php в строку 12 например добавить values: <[??,??]>, не знаю php, может кто подскажет

SERblY 30.03.2018 15:13

Цитата:

Сообщение от Nexus (Сообщение 481874)
SERblY, правильнее будет вывести в input переданное фильтру значение и при инициализации слайдера воспользоваться ими.

Сохранять значения в localStorage по-моему глупо, когда есть возможность модифицировать backend.

ясно что нечего не ясно, все равно спасибо хоть на этом

SERblY 30.03.2018 15:13

Цитата:

Сообщение от рони (Сообщение 481875)
SERblY,
проще способ Nexus,
на php в строку 12 например добавить values: <[??,??]>, не знаю php, может кто подскажет

я тоже не силен не в том не в том, по этому и тут на форуме!

Nexus 30.03.2018 15:15

SERblY, какой шаблонизатор используется?
Каким методом данные на сервере передаются?

SERblY 30.03.2018 15:44

smarty
<div class="col-md">
				<input style="padding-left:3px; padding-right:3px" class="price_field minCost form-control" name="{%$id%}[over]" type="number" step="500.00" id="" placeholder="Цена, {%$locale.888%}" value=""/>
				</div>
				<div class="col-md">
				<input style="padding-left:3px; padding-right:3px" class="price_field maxCost form-control" name="{%$id%}[less]" type="number" step="500.00" placeholder="Цена, {%$locale.889%}" id="bs_{%$field.id%}" value=""/>
			</div>

повторюсь при изменение числового значения input ползунок работает. при передвижение ползунка меняется значение input . поиск по данным критериям срабатывает. но при открытие вновь поиска в input данные прошлого запроса сохраняются пока их не обнулишь или не изменишь а ползунок тупо встает на исходную (вот главная проблема), ну и как специалисты мб еще подскажите что то мб в коде лишнее или можно сделать лучше. безмерно благодарен лично Вам за помощь любую и форуму конечно, уже не 1 раз обращаюсь.

Dilettante_Pro 30.03.2018 16:50

Цитата:

если обновить страничку то в инпутах диапазон остаетсся тот который выбирали
тогда в коде инициализации слайдера установить значения values из инпутов
var minCost = jQuery("input.minCost"),
     maxCost = jQuery("input.maxCost");
jQuery("#slider").slider({
	min: 0,
	max: 1000000,
	step: 500,
	range: true,
	values: [ minCost.val(), maxCost.val()],
	stop: function(event, ui) {
		minCost.val(jQuery("#slider").slider("values",0));
		maxCost.val(jQuery("#slider").slider("values",1));
		
    },
    slide: function(event, ui){
		minCost.val(jQuery("#slider").slider("values",0));
		maxCost.val(jQuery("#slider").slider("values",1));
    }
});

Правда, похоже, нужно чтобы вместо
placeholder="Цена, {%$locale.888%}" value=""/>

было
placeholder="Цена, {%$locale.888%}" value="{%$locale.888%}"/>


И, соответственно, во втором инпуте аналогично.

SERblY 30.03.2018 17:14

{%$locale.888%} это не переменная это просто языковая, От , До, просто еще записал в языковой файл "цена"

Dilettante_Pro 30.03.2018 17:20

SERblY,
А как же тогда
Цитата:

если обновить страничку то в инпутах диапазон остаетсся тот который выбирали
если value="" ???

SERblY 30.03.2018 21:11

Цитата:

Сообщение от Nexus (Сообщение 481887)
SERblY, какой шаблонизатор используется?
Каким методом данные на сервере передаются?

Вы можете помочь? тут все сыплят какимито стандартными вещами, я понимаю что они их понимают, но я то не понимаю пока, я для этого и обратился на Ваш форум!

laimas 30.03.2018 21:45

Цитата:

Сообщение от SERblY
тут все сыплят какимито стандартными вещами

Поля, которые передают северу значения слайдера, сервер же обрабатывает. Если именно обновление страницы, то есть по F5, то все правильно, значения полей будет таким каким было отправлено формой. Если просто выбрать страницу, то массив $_GET на сервере будет пуст, а значит и поля тоже.
То есть, чтобы сохранить выбор пользователя, нужно значения полей полученные на сервере помещать в параметры слайдера. Если это не возможно, то эти значения слайдер должен получить из значения полей, то есть value, а они у вас пустые, о чем и говорил Dilettante_Pro.

Так что нужно выяснить как инициализируется слайдер, и если значения получает из полей, то передавайте их в Smarty - value="{$value}".

SERblY 30.03.2018 21:53

что для этого нужно ? прошу реально помощи, на что головы хватило сделал, тут немогу понять....

SERblY 30.03.2018 21:57

я понимаю для знающих это просто, я например в верстке силен, но хоть убейте я только на начале пути в понимание Java , я не тупой, могу сделать, но я начинающий мне мб надо объяснить... нет Вы и все форумчане этого не обязаны делать, никто мне не должен ничего и я никому, но суть наша в том что можно просто обратиться на форум где тусуются люди знающее вопрос и помогут, ..... никто ни кому нечего не должен, но я буду очень благодарен если Кто-то поможет, спасибо! извините за такой выдох!

SERblY 30.03.2018 23:41

помоги если есть вариант ?!, тема уйде в никуда!

SERblY 31.03.2018 03:56

Цитата:

Сообщение от laimas (Сообщение 481911)
Поля, которые передают северу значения слайдера, сервер же обрабатывает. Если именно обновление страницы, то есть по F5, то все правильно, значения полей будет таким каким было отправлено формой. Если просто выбрать страницу, то массив $_GET на сервере будет пуст, а значит и поля тоже.
То есть, чтобы сохранить выбор пользователя, нужно значения полей полученные на сервере помещать в параметры слайдера. Если это не возможно, то эти значения слайдер должен получить из значения полей, то есть value, а они у вас пустые, о чем и говорил Dilettante_Pro.

Так что нужно выяснить как инициализируется слайдер, и если значения получает из полей, то передавайте их в Smarty - value="{$value}".

неработает, и вообще при чем тут {%value%} есть id ну блин парни если я допер как этот скрипт поставить то Вы точно должны допереть как его исправить, Ведь Вы видете в инпута смартиковские переменные, не важно какие они, их обрабатывает пхп скрипт, подскажите, помогите, как сделать что бы жтот слайдер сохранялся, ведь инпуты сохраняются, я вам полный код передал, сейчас вопрос как ссделать, парни Вы ассы я знаю , просто я хз как еще объяснить, в любом случае спс!!! да, извиняюсь за ошибки/, много текст и клава глючит

laimas 31.03.2018 03:56

Да, те что вам отвечали знаю и понимают многое, но откуда же им ведомо как обстоят дела на сервере. А не зная этого вам никто не скажет - "нужно вот это передать в это таким образом".

Через поля формы нужно передать значения состояния ползунка, если js-скрипт подключается к странице, то есть серверный язык в нем ничего не может править, подставлять. Поэтому в шаблонизатор и нужно передать значения для полей, те что были получены. А как они обрабатываются сервером, не известно, известно только что это будут имена name="{%$id%}[less]", хотя такие имена не лучшее, что можно придумать.

laimas 31.03.2018 03:57

Цитата:

Сообщение от SERblY
и вообще при чем тут {%value%} есть id

Хрен знает как вам объяснить, если вы не понимаете, что id, ничего для сервера не значит, и отношения к значению поля не имеет.

SERblY 31.03.2018 04:11

бли ну я же скинул код, код который работает, вот код исходника (без ползунка):
{%if $field.type == 'p'%}
						<input class="form-control price_field" name='{%$id%}[over]' type='number' step='0.01' placeholder="{%$locale.888%}" value=''/>
						<input class="form-control price_field" name='{%$id%}[less]' type='number' step='0.01' placeholder="{%$locale.889%}" value='' id="bs_{%$field.id%}"/>  
                        <select size='1' name="{%$id%}[rate]" class="form-control price_field">
            				{%foreach  from=$field.rates item='rates'%}
            				    <option {%if $rates_default.id == $rates.id%}selected{%/if%} value='{%$rates.id%}'>{%$rates.name%}</option>
            				{%/foreach%}
                        </select>     
					{%/if%}

как есть!!!

laimas 31.03.2018 04:19

Чего вы хотите? Этот код ни о чем не говорит, я зная что такое Smarty могу лишь только сказать что это сформирует нечто. Все.

Вам русским языком говорят, что если положение ползунка задавать через значения полей, которые он обрабатывает, то их нужно задавать на сервере, где они placeholder="{%$locale.888%}" value=''? Вы думаете что тут волшебники и знают как сервер принимает эти значения, обрабатывает и прочее, а значит конкретно скажу написать в шаблоне именно так-то и так? Ошибаетесь.

А атрибут id, это всего лишь уникальный идентификатор DOM-объекта на странице, по которому его можно получить.

SERblY 31.03.2018 04:27

да я думаю что волшебники, не первый раз обращаюсь.... повторюсь Вы не обязаны мне помогать, но думаю тут вопрос фигня , я просто не знаю как его решить... В любом случае Вам спасибо! извините за беспокойство...

SERblY 31.03.2018 04:38

вот выше стандартный пример, без ползунка, все работает, прикрутить ползунок, все переменные там есть, Как это сделать? подскажите, тыкните носом как говориться, я Вас понимаю, когда ко мне по поводу bootstrap4 обращаются тоже люди не далекие, я просто данную задачу в скрипте решить не могу, поэтому и обратился!

laimas 31.03.2018 04:40

Вы обслуживаете бабушку продуктами на основании ее записки к вам. И чтобы не забывать, в силу ее возраста, эта записка для нее и учет чего она уже брала, чтобы не купить заново. Она пишет для вас:

Хлеб - 1 булка
Яйца - 10 штук

Чтобы она не забыла, вы привозя ей продукты должны написать

Куплено хлеба - 1 булка.
Куплено яиц - 10 яиц.

Все здесь на форуме видят знают как бабушка делает у вас заказ и могут помочь в какой либо ситуации. Но никому здесь на форуме не ведомо, почему вы вместо

Куплено хлеба - 1 булка.
Куплено яиц - 10 яиц.

возвращаете бабушке в записке

Хлеб -
Яйца -

Что блин непонятного то? Как вам могут подсказать сделать нечто, не зная на чем это основывается.

Смотрите пост от рони, храните изменения ползунка на клиенте в таком случае, только не локальном хранилище, а в сессионном, иначе клиент будет видеть совсем не то, что ожидает. Больше сказать нечего.

SERblY 31.03.2018 04:58

Цитата:

Сообщение от laimas (Сообщение 481930)
Вы обслуживаете бабушку продуктами на основании ее записки к вам. И чтобы не забывать, в силу ее возраста, эта записка для нее и учет чего она уже брала, чтобы не купить заново. Она пишет для вас:

Хлеб - 1 булка
Яйца - 10 штук

Чтобы она не забыла, вы привозя ей продукты должны написать

Куплено хлеба - 1 булка.
Куплено яиц - 10 яиц.

Все здесь на форуме видят знают как бабушка делает у вас заказ и могут помочь в какой либо ситуации. Но никому здесь на форуме не ведомо, почему вы вместо

Куплено хлеба - 1 булка.
Куплено яиц - 10 яиц.

возвращаете бабушке в записке

Хлеб -
Яйца -

Что блин непонятного то? Как вам могут подсказать сделать нечто, не зная на чем это основывается.

Смотрите пост от рони, храните изменения ползунка на клиенте в таком случае, только не локальном хранилище, а в сессионном, иначе клиент будет видеть совсем не то, что ожидает. Больше сказать нечего.

ирония тут ни как не уместна, если Вас веселит что кто то не достаточно знает предмет как Вы, ну что же, этот сайт и создавался как в помощь, теперь все только faq отписываются, я повторюсь я не знаю как это пишется, саму логику поведения обработчика скрипта и без Вас знаю, как это реализовать не знаю, лукавить не буду, мб для этого нужна помощь людям которые не далекие от конкретной задачи ???

laimas 31.03.2018 05:04

Цитата:

Сообщение от SERblY
ирония тут ни как не уместна

Это не ирония, это отвлеченный пример, но с той же ситуацией, что и с полями ввода. Если и этого вы не понимаете, тогда бог знает как вам еще пояснить, что вам не смогут помочь в том, что неведомо.

SERblY 31.03.2018 05:05

по поводу Рони, он мне помог очень с картой помню году в 2014, на него собственно и надеялся, тоже не буду лукавить, но что то в теме пропал, еще раз Вам лично говорю, Извините, я просто скрипт натянул как смог, далее мои знания заканчиваются, я думаю все впереди полюбому, но ползунок нужен сейчас, вот беда какая!

SERblY 31.03.2018 05:23

в форме все есть, все подгружаеться посредством аякса, я же как то смог его прикрутить, если надо дам доступ, вот короче говоря как это все работает:
<div class="bg-light" style="padding:10px; border:2px solid #29abe0; box-shadow: 0 1px 14px 0 rgba(24,80,120,.5)">
<a href="#" onclick="divOp(0);"><i class="material-icons closedsearch">clear</i></a> 
{%******* доп. поля *******%}
  <div class="block_search_ajax"></div>


далее подключаеться :

<script src="{%$smarty.const.THEME%}assets/jquery-ui/jquery-ui.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){


/* слайдер цен */

jQuery("#slider").slider({
	min: 0,
	max: 1000000,
	step: 500,
	range: true,
	stop: function(event, ui) {
		jQuery("input.minCost").val(jQuery("#slider").slider("values",0));
		jQuery("input.maxCost").val(jQuery("#slider").slider("values",1));
		
    },
    slide: function(event, ui){
		jQuery("input.minCost").val(jQuery("#slider").slider("values",0));
		jQuery("input.maxCost").val(jQuery("#slider").slider("values",1));
    }
});

jQuery("input.minCost").change(function(){

	var value1=jQuery("input.minCost").val();
	var value2=jQuery("input.maxCost").val();

    if(parseInt(value1) > parseInt(value2)){
		value1 = value2;
		jQuery("input.minCost").val(value1);
	}
	jQuery("#slider").slider("values",0,value1);	
});

	
jQuery("input.maxCost").change(function(){
		
	var value1=jQuery("input.minCost").val();
	var value2=jQuery("input.maxCost").val();
	
	if (value2 > 1000000) { value2 = 1000000; jQuery("input.maxCost").val(1000000)}

	if(parseInt(value1) > parseInt(value2)){
		value2 = value1;
		jQuery("input.maxCost").val(value2);
	}
	jQuery("#slider").slider("values",1,value2);
});



// фильтрация ввода в поля
	jQuery('input.maxCost, input.minCost').keypress(function(event){
		var key, keyChar;
		if(!event) var event = window.event;
		
		if (event.keyCode) key = event.keyCode;
		else if(event.which) key = event.which;
	
		if(key==null || key==0 || key==8 || key==13 || key==9 || key==46 || key==37 || key==39 ) return true;
		keyChar=String.fromCharCode(key);
		
		if(!/\d/.test(keyChar))	return false;
	
	});


});



</script>
<link href="{%$smarty.const.THEME%}assets/jquery-ui/jquery-ui.css" rel="stylesheet"/>
.............

специально еще захвачу два поля чекбоксы и т.д., все подключается в зависимости от условия, это для примера. но меня конкретно интересует ползунок добрые люди,

{%if $field.type == 'r'%}
					 <div class="form-group">
    <div class="custom-control custom-radio">
      <input type="radio" id="customRadio1" name="{%$id%}" class="custom-control-input" value=''>
      <label class="custom-control-label" for="customRadio1">&nbsp;{%$locale.204%}</label>
    </div>      
     {%foreach  from=$field.values_array item='vl' key='k'%}
    <div class="custom-control custom-radio">      
      <input type="radio" id="customRadio{%$vl%}" name="{%$id%}" class="custom-control-input" value='{%$k%}'>
      <label class="custom-control-label" for="customRadio{%$vl%}">&nbsp;{%$vl%}</label>
    </div>   
						{%/foreach%}
           </div>
					{%/if%}
     


					{%if $field.type == 'c'%}
            
						{%foreach  from=$field.values_array item='vl' key='k'%}
			<div class="form-group">			 
    <div class="custom-control custom-checkbox">
      <input type="checkbox" name="{%$id%}[{%$k%}]" class="custom-control-input" id="customCheck{%$vl%}" value="{%$k%}">
      <label class="custom-control-label" for="customCheck{%$vl%}">&nbsp;{%$vl%}</label>
           </div>
						{%/foreach%}
            
					{%/if%}



					{%if $field.type == 'p'%}




			<div class="row">
    <div class="col-md">				
------------------------------------------
<input style="padding-left:3px; padding-right:3px" class="price_field minCost form-control" name="{%$id%}[over]" type="number" step="500.00" id="" placeholder="Цена, {%$locale.888%}" value=""/>
				</div>
				<div class="col-md">
				<input style="padding-left:3px; padding-right:3px" class="price_field maxCost form-control" name="{%$id%}[less]" type="number" step="500.00" placeholder="Цена, {%$locale.889%}" id="bs_{%$field.id%}" value=""/>
--------------------------------------------------------------
			</div>
      <div class="col-md">
      <select style="padding:3px" size='1' name="{%$id%}[rate]" class="form-control price_field custom-select">

            				{%foreach  from=$field.rates item='rates'%}

            				    <option {%if $rates_default.id == $rates.id%}selected{%/if%} value="{%$rates.id%}"><strong>{%if $rates.id == 1 %}&#x584;{%/if%}{%if $rates.id == 2 %}${%/if%}{%if $rates.id == 3 %}&euro;{%/if%}</strong></option>

            				{%/foreach%}

                        </select>
      </div>
      </div>

----------------------------------------------
     <div class="clearfix" style="height:10px"></div>
			<div class="sliderCont">
					<div id="slider"></div>
			</div>
			<div class="clearfix" style="height:10px"></div>
-----------------------------------------------------

    

					{%/if%}

				</div>

			{%/if%}

		{%/foreach%}



            			<div class="row">
    <div class="col-md">


         

            <div class="custom-control custom-checkbox">

<input class="custom-control-input" id="defaultCheckimages" name="must[images]" type="checkbox" value="ON" /> 
                  <label class="custom-control-label" for="defaultCheckimages" style="cursor: pointer">
    только с фото
  </label>
            </div>

             </div>
            
			{%foreach from=$fields key='k' item='field'%}
                
				{%if $field.type == 'f' OR  $field.type == 'y' OR  $field.type == 'j'%}
                    <div class="col-md">
                    <div class="custom-control custom-checkbox">

					    <input class="custom-control-input" id="defaultCheck{%$k%}" name="must[{%$k%}]" type="checkbox" value="ON" /> 
              <label class="custom-control-label" for="defaultCheck{%$k%}" style="cursor: pointer">
              {%$field.name%}
                   </label>
                    </div>
            </div>
				{%/if%}
            
			{%/foreach%}

рони 31.03.2018 08:31

SERblY,
замените строки 8 - 22 на это ...
var minCost = jQuery("input.minCost"),
    maxCost = jQuery("input.maxCost"),
    storage = sessionStorage;
jQuery("#slider").slider({
  min: 0,
  max: 1000000,
  step: 500,
  range: true,
  values: JSON.parse(storage.getItem("values")) ||[0, 1000000],
  stop: function(event, ui) {
    minCost.val(ui.values[0]);
    maxCost.val(ui.values[1]);
    storage.setItem("values", JSON.stringify(ui.values));
    },
    slide: function(event, ui){
    minCost.val(ui.values[0]);
    maxCost.val(ui.values[1]);
    }
});

Nexus 31.03.2018 11:52

SERblY, вы публикуете код представления, оно ничем особо не поможет, т.к. не обрабатывает (и не должно) запрос, а просто отрисовывает страницу.

Можно попробовать заменить участок представления, который отвечает за отрисовку инпутов для слайдера этим:
<div class="col-md">
	<input style="padding-left:3px; padding-right:3px" 
		   class="price_field minCost form-control" 
		   name="{%$id%}[over]" 
		   type="number" 
		   step="500.00" 
		   placeholder="Цена, {%$locale.888%}" 
		   id="bs_{%$field.id%}" 
		   value="{%if isset($smarty.request[$id].over)%}{%$smarty.request[$id].over%}{%else%}0{%/if%}"/>
</div>
<div class="col-md">
	<input style="padding-left:3px; padding-right:3px" 
		   class="price_field maxCost form-control" 
		   name="{%$id%}[less]" 
		   type="number" 
		   step="500.00" 
		   max="1000000" 
		   min="0" 
		   placeholder="Цена, {%$locale.889%}" 
		   id="bs_{%$field.id%}" 
		   value="{%if isset($smarty.request[$id].less)%}{%$smarty.request[$id].less%}{%else%}0{%/if%}"/>
</div>
Если известен метод передачи данных на сервер, то "$smarty.request" нужно заменить на "$smarty.get/post".
"$smarty.request" - не ссылка на глобальную переменную request, подробнее в документации шаблонизатора.

Js заменить этим:
(function() {
	var jQ = jQuery,
		$slider = jQ("#slider"),
		$minField = jQ("input.minCost"),
		$maxField = jQ("input.maxCost");
		
	$minField.add($maxField).change(function() {
		var isMaxField = this.classList.contains('maxCost'),
			minValue = +this.value;
			
		if(isMaxField && +$maxField.val() > +$maxField.attr('max')) 
			$maxField.val($maxField.attr('max') || 0);
			
		if(minValue > +$maxField.val()) 
			this.value = minValue = (+$maxField.val() || 0);
			
		$slider.slider('values', +isMaxField, minValue);
	}).keypress(function(event) {
		var e = e || window.event,
			key = e.keyCode || e.charCode;
			
		if([null, 0, 8, 13, 9, 46, 37, 39].indexOf(key) > -1) 
			return true;
		else if(!/\d/.test(String.fromCharCode(key))) 
			return false;
	});
	
	$slider.slider({
		min: $maxField.attr('min') || 0,
		max: $maxField.attr('max') || 0,
		step: $maxField.attr('step') || 0,
		values: [$minField.val() || 0, $maxField.val() || $maxField.attr('max') || 0],
		range: true,
		stop: function _ui_slider_handler(event, ui) {
			$minField.add($maxField).val(function(i) {
				return ui.values[i];
			});
		},
		slide: _ui_slider_handler
	});
	
})();


Если вывести значения в инпуты не выйдет, то воспользуйтесь вариантом рони.
Если значения выведутся в инпуты, но что-то не будет работать, смотрите консоль, м.б. я где-то допустил в js ошибку (не тестировал).

SERblY 31.03.2018 14:02

Спасибо Вам и Рони Спасибо, я попробую и отпишусь обязательно

SERblY 31.03.2018 14:03

мало ли не я один такой )

SERblY 31.03.2018 14:11

Цитата:

Сообщение от рони (Сообщение 481935)
SERblY,
замените строки 8 - 22 на это ...
var minCost = jQuery("input.minCost"),
    maxCost = jQuery("input.maxCost"),
    storage = sessionStorage;
jQuery("#slider").slider({
  min: 0,
  max: 1000000,
  step: 500,
  range: true,
  values: JSON.parse(storage.getItem("values")) ||[0, 1000000],
  stop: function(event, ui) {
    minCost.val(ui.values[0]);
    maxCost.val(ui.values[1]);
    storage.setItem("values", JSON.stringify(ui.values));
    },
    slide: function(event, ui){
    minCost.val(ui.values[0]);
    maxCost.val(ui.values[1]);
    }
});

все работает, спасибо!, есть какие-то косяки в скрипте ?, последний вопрос, да и он сохраняется все нлорм но по умолчанию он по максимуму, хотя.... это даже лучше, чем могу отблагодарить ? рубли Вы наверное и по больше чем я зарабатываете, извините за бестакность, чем могу помочь конкретно форуму, по поводу верстки всегда пожалуйста, без проблем! Парни Спасибо еще раз!

laimas 01.04.2018 07:18

Цитата:

Сообщение от SERblY
он сохраняется все нлорм но по умолчанию он по максимуму

Вообще для ползунка указание параметров

min: 0,
max: 1000000,
step: 500

это нонсенс, не может он имеет эти значения как константы. Например, пользователь находится на странице группы товаров с минимальной ценой 2000 и максимальной 10000. В этом случае рабочий диапазон ползунка будет сжат, а шаг изменения слишком большой.

Отдавая ползунок пользователю параметры мин/макс и шаг изменения нужно рассчитывать под конкретный диапазон.

SERblY 05.04.2018 14:38

Цитата:

Сообщение от laimas (Сообщение 481989)
Вообще для ползунка указание параметров

min: 0,
max: 1000000,
step: 500

это нонсенс, не может он имеет эти значения как константы. Например, пользователь находится на странице группы товаров с минимальной ценой 2000 и максимальной 10000. В этом случае рабочий диапазон ползунка будет сжат, а шаг изменения слишком большой.

Отдавая ползунок пользователю параметры мин/макс и шаг изменения нужно рассчитывать под конкретный диапазон.

это понятно, это бы вообще в идеале, просто тут уже наверное задача сложнее, как то просить язык не поворачивается хоть с ползунком помогли

laimas 05.04.2018 15:04

Цитата:

Сообщение от SERblY
просто тут уже наверное задача сложнее

Ничего сложно, это не забота клиента, это уже забота сервера, так как он должен выяснить мин/макс значения в базе и отдать их клиенту. Клиенту нужно только поместить их в параметры ползунка.

SERblY 06.04.2018 22:16

как бы эту светлую мысль еще и реальзовать
даже упростить минимальное значение пускай будет 0 всегда а вот максимальное берется из базы самое большое какое есть в базе

laimas 06.04.2018 22:37

Допустим у вас продаются в отделе бублики разных производителей, при этом мин. цена это 50 руб/кг и макс. 80 руб/кг. Вы отдаете клиенту свой ползунок с мин. значением 0 и макс. значением 10000, да еще с шагом 500. В каком месте шкалы будет реально выбрать цену бубликов и возможно ли будет это сделать с шагом 500?

А в другом отделе вы торгуете Жигулями и Лексусами, с мин. ценой 400000 и макс. 4600000. Можно ли будет на вашем ползунке с его диапазоном купить Лексус?

Я не настаиваю, дело хозяйское, но вашим ползунком либо нельзя будет воспользоваться, либо он будет неудобен.


Часовой пояс GMT +3, время: 03:06.