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 07.04.2018 08:41

Цитата:

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

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

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

я С Вами согласен, просто не знаю как его доработать

laimas 07.04.2018 09:24

Это зависит от того, в составе чего он используется. Обычно, это фильтр, а в них возможен выбор категорий или подобного, в котором будет производится выборка по выбранным параметрам. То есть ползунок будет иметь не какой-то один фиксированный диапазон, а диапазоны для каждой из выбранных категорий.
Формируя код фильтра для страниц, сервер делает запросы к базе и получается мин/макс значения для каждой категории в фильтре. Эти параметры передаются клиенту как объект, из которого при выборе категории в фильтре, они извлекаются и назначаются ползунку, а тот в свою очередь инициализируется с этими параметрами.
Шаг изменения также важен, например если диапазон от 100 до 10000, то в районе от 100 до 300 может быть удобен шаг 10, а далее, приближаясь к верхним значениям он должен увеличиваться, ибо там цены большие. Вроде бы тут уже была тема по поводу изменения шага в зависимости от шкалы и положения ползунка на ней. На основе какого-то слайдера был разбор, если я не путаю, то это рони ссылку на это может дать.
Либо шаг для каждого полученного диапазона рассчитывает сервер после получения мин/макс значений, как некую компромиссную величину.

Получение самих мин/макс значений из базы, это SQL запрос.

рони 07.04.2018 10:11

Цитата:

Сообщение от laimas
Либо шаг для каждого полученного диапазона рассчитывает сервер после получения мин/макс значений, как некую компромиссную величину.

Получение самих мин/макс значений из базы, это SQL запрос.

:yes:
на клиенте это слишком затратно

SERblY 07.04.2018 17:44

в идеале мин 0 всегда, макс чтобы из базы брал самую высокую цену какая есть, чтобы самому не придумывать ее, а шаг тоже ручками поставить оптимальный или как то по формуле считать оптимальный шаг в зависимости от значения макс, этот слайдер для доски объявлений, так что в категориях где цены 2000 и т.д. им пользоваться никто и не будет там и так есть показать самые дешевы или самые дорогие, им буду пользоваться в разделах авто, недвижимость, вот поэтому максимальное значение не угадаешь, ставить от балды 10500 милионов тоже глупо он даже ездить не будет точнее это будет незаметно, а вот сделать бы только макс значение динамичным по самому выс значению цены, ну и с шагом либо самому ручками придумать оптимальный либо как выше написал по формуле как то типо, в голове то все ясно, а вот как решить хз как обычно :)

laimas 08.04.2018 02:20

Цитата:

Сообщение от SERblY
в идеале мин 0 всегда

То есть цена 0 руб, это сплошь и рядом, и кругом не торговля, а исключительно благотворительность? ;)

Делайте как считаете нужным, тем более если нет понимания как сделать иначе.

clecar 08.04.2018 18:52

Да элементарно откажись от JERRY хотя бы с ползунком. jerry-величайший
прикол в JS нашего времени (мнение слесаря ремонтника больших металлорежущих станков ныне на пенсии)

SERblY 09.04.2018 01:11

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

SERblY 09.04.2018 01:18

Цитата:

Сообщение от clecar (Сообщение 482719)
Да элементарно откажись от JERRY хотя бы с ползунком. jerry-величайший
прикол в JS нашего времени (мнение слесаря ремонтника больших металлорежущих станков ныне на пенсии)

что такое jerry ? можно хоть как то подробнее, Вы имеете в виду JQuery ?

laimas 09.04.2018 06:42

Цитата:

Сообщение от SERblY
бл* я прошу прощения два последних , Вы себе тупо посты набиваете что ли?

Да уж, велик соблазн обогатиться на постах. Товары не имеющие цены, это убеждение, религия, что угодно, но не JS, он то тут причем?
Да, идеально жить при коммунизме и ни за что не платить, но это утопия. И в базе данных искать товары с нулевой ценой, которых в ней нет, это глупо. Что для понимания этого требуется знание JS?

Вы хотя бы делали попытку получить в базе мин/макс значения своих данных? Или с этим тоже проблемы? А ведь конкретно подключить эти данные к слайдеру труда не составляет и как-то глубоких познаний JS тоже, но для "подсказать в этом плане" важно знать организацию того как и где он применяется.

А clecar, просто глупость сморозил.

SERblY 09.04.2018 08:58

нет значение макс цены я думаю можно получить даже , не думаю а можно получить через smarty запрос в переменную что то типа {%$max.value_price%} (к примеру), вопрос то не в этом, а в том куда это в коде js вставить и вообще примет ли js сам объект шаблонизатора smarty и т.д.

laimas 09.04.2018 09:03

Цитата:

Сообщение от SERblY
значение макс цены я думаю можно получить даже , не думаю а можно получить через smarty запрос в переменную что то типа {%$max.value_price%}

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

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

SERblY 09.04.2018 12:16

ну Вы врете что шаблонизатор smarty нех*я не может , он может все, например достаем цену , просто цену , тоесть значение некого поля из базы {%$message.f_3.value%} или например делаем условие на смарти , которое тоже подключается к базе , например туже цену, условие такое если цена есть она выводится если ее не проставили выводится что то другое:
{%if $message.fields.p|@count > 0%}
{%foreach from=$message.fields.p item='v'%}
Цена: {%$v.value.txt|droblenie%} <i class='fa fa-rub'></i>{%/foreach%}
{%else%}
Цена не указана
{%/if%}

я незнаю мб чего то, мб от жизни отстал, но мне кажется что php+smarty+JQuery+css3 это идеальная компашка для создания проектов и т.д. в веб среде!

SERblY 09.04.2018 12:23

кстати тут не только условие а еще и выборка идет, есть более сложные варианты и запросов и условий, думаю нет смысла писать на примере выше Вы и так все поймете, так что смарти это ахеренно, это намного лучше чем где тупо html+css натянуты как ган**н прям на php, простите за выражение и тафтологию, это сугубо мое мнение и опыт как верстальщика

laimas 09.04.2018 12:29

Цитата:

Сообщение от SERblY
ну Вы врете что шаблонизатор smarty нех*я не может

Шаблонизаторы служат для разделения кода от представления, если вы будете нагружать шаблонизатор логикой кода, то нафига он нужен вообще.

Делайте что хотите, коли вам так нравится.

SERblY 09.04.2018 12:29

чтобы вообще разжевать {%$message.f_3.value%} <---- тут мы получаем значение поля бызы данных f_3 , оно на разных проектах мб называться как угодно, это так для примера, соответсвенно все это объявляеться в php в самом ядре так скажем, smarty это некий посредник между сервером и клиентом, как то так!

laimas 09.04.2018 12:32

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

Nexus 09.04.2018 12:42

Цитата:

Сообщение от SERblY
чтобы вообще разжевать {%$message.f_3.value%} <---- тут мы получаем значение поля бызы данных f_3

Эта строка ничего не получает из базы данных, а пытается вывести на страницу данные, которые были переданы шаблонизатору.

SERblY 09.04.2018 12:43

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

laimas 09.04.2018 12:48

Цитата:

Сообщение от SERblY
запрос через js если его можно сделать через smarty и передать значение в js уже, я так думаю

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

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

SERblY 09.04.2018 12:50

Цитата:

Сообщение от Nexus (Сообщение 482781)
Эта строка ничего не получает из базы данных, а пытается вывести на страницу данные, которые были переданы шаблонизатору.

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

SERblY 09.04.2018 12:54

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

Nexus 09.04.2018 13:11

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

laimas 09.04.2018 14:46

Цитата:

Сообщение от SERblY
мне то всего то надо же слайдер до ума довести

И что это значит?

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

И это ведь очевидно, и вообще не имеет отношения к программированию.

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

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

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

Ваш магазин предлагает от жевательных резинок за 5 руб до черной икры за 50000 руб, и вы все товары свалили в кучу. Удобно ли будет покупателю уже интернет магазина купить чтобы либо у вас, или же так же, очевидно, нет, как и выше в реальном магазине? А то что слайдер цен в данном случае вообще бесполезен, уже говорилось.

Javascript появляется на горизонте тогда, когда на сервере есть грамотная организация магазина, представление его товаров и прочее. Клиент запрашивает нужное, JS используя данные данные ему серверов обеспечивает удобный сервис для клиента, вашего покупателя.

Если магазин имеет грамотную организацию, значит у него есть отделы (не важно, что магазин виртуальный, подход тот же самый, что и в реальном) - бакалея, ХБ изделия (не обмундирование), консервы, ... Равноценно как вы придя за хлебом в реальный магазин, идете в отдел хлебобулочных изделий, так и в виртуальном магазине покупатель должен иметь возможность посещения нужного отдела магазина. Это обеспечивается меню. Но такой же доступ к разделам должен быть и при поиске товаров. А это значит, что сперва покупатель выбирает категорию товаров, затем задает диапазон цен. Вот тут уже работа JS - получить данные представленные сервером по ценам категорий товаров, чтобы инициализировать слайдер на диапазон крайних цен выбранной пользователем категории товаров.

Вот что должен отдать сервер клиенту:

var prop_range = {
     '1' : {'min': 50, 'max': 600, 'step': 60},
     '2' : {'min': 2800, 'max': 13700, 'step': 200},
     ....
}


где 1 и 2, это ID категорий товаров, которые являются значениями списка категорий в фильтре. И под ними как ключами мин/макс цены товаров полученные запросом к базе в соответствующей категории товаров. А шаг рассчитывается делением макс значения на 10/100/1000... в зависимости от знаков макс значения, с округлением.

Запрос по фильтру, это выдача покупателю найденных (или нет) товаров, с сохранением в фильтре набора. То есть, если был сделан запрос по фильтру, то список должен отображать выбранную категорию, а слайдер цен должен инициализироваться не только по значениям этой категории, но и отображать то состояние, в которое его установил пользователь.

Вот это называется "довести до ума". Чем вы там торгуете, одна ли группа товаров и почему 0 руб, это идеально, только богу и вам известно. Если так надо, то тему можно закрыть. Если нет групп товаров, и все едино, а нужно только мин и макс, то делайте запрос в базу, получайте эти значения, передавайте их в шаблонизатор, и закрывайте тему.

SERblY 11.04.2018 11:33

Запрос в базу для поиска максимального значения цены выглядит так
SELECT MAX(value) as max_price FROM eb_db_fields fdb
LEFT JOIN eb_fields fld on fld.id=fdb.field
WHERE fld.type='p'

laimas 11.04.2018 12:42

А зачем здесь LEFT JOIN и почему только максимальные значение, а не и минимальные?

SERblY 17.04.2018 15:33

вообщем сделал запрос максимальной цены отдельным вайлом который передает ее шаблонизатору
$max_price = dbarray(dbquery("
SELECT MAX(value) as max_price FROM ".PREF."db_fields fdb
LEFT JOIN eb_fields fld on fld.id=fdb.field
WHERE fld.type='p'
"));
$max_price = $max_price['max_price'];
$smarty->assign('max_price', $max_price);

в самом шаблшоне максимальная цена самого дорогого объявления будет выглядеть так {%$max_price%} примет скрипт? так понимаю должно будет выглядеть так как то
<script src="{%$smarty.const.THEME%}assets/jquery-ui/jquery-ui.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){


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

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]);
    }
});


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>


это код рабочий который Вы помогли мне составить, тоесть значение в данном случае стоит 1000000 если я его заменю на {%$max_price%} JS подружиться со смарти? тоесть сработает такой вариант ?

SERblY 17.04.2018 16:48

не так не хочет работать :no:

laimas 17.04.2018 18:47

Зачем LEFT JOIN ... WHERE? Вы либо что-то кусочками делаете, что неверно, либо вообще не то что нужно.

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

Это означает, что кроме обязательной проверки на число значений этих, нужно еще и проверять что есть мин, а что макс из из них. Либо делается проще, как $val_min = min($array), $val_max = max($array). Ибо эти значения подставляются в запрос как WHERE price BETWEEN $min AND $max. Эти же значения ползунка передаются и слайдеру, если был выбор по ним, иначе они равны крайним значениям диапазона.

Если таблица продуктов одна, то крайние значения слайдера, это SELECT MIN(price) `min`, MAX(price) `max` FROM table, и это все (оператор AS для алиасов можно опускать, не думаю, что вы используете древний MySQL и будут проблемы). И Smarty сам по себе не догадывается, что он него хотят, ему нужно передать этот массив содержащий min, max, $val_min, $val_max - $smarty->assign('range', $array). И уже в шаблоне извлечь из {range} необходимое, подставив куда следует.

Если код слайдера в самой странице, то соответсвуенно

slider({
min: тут,
max: тут,
... и далее, включая и задание начальных значений.

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

Такого в коде if (value2 > 1000000) { value2 = 1000000; ... быть не должно. Либо из переданных в шаблон мин/макс значений здесь тоже подстановка, либо эти значения задаются в атрибутах полей. А вообще же, коли это плагин, то это его заданные параметры, и проверка полей на диапазон, это его методы, а мин/макс заданные параметры, то есть типа this.min.

Если код плагина подключаемый, то переданные в шаблон значения уже как json_encode($array) выводят в секции <script> под объявленной переменной, значения которые будут использоваться

slider({
min: тут,
max: тут,
...

И только, если это фильтр расширенный, в нем есть список категорий продуктов, то запрос в базу должен вернуть для него мин/макс значения всех категорий наряду с их названиями и ID, тогда SELECT a.id, a.name, MIN(b.price) `min`, MAX(b.price) `max` FROM table1 a LEFT JOIN table2 b USING(id). А также указать был ли запрос по фильтру, и если да, то по какой категории, отметив это в списке в шаблоне, установив эти значения, как выбранные пользователем в слайдере.

Если вы этого не понимаете, не подгоняйте под ответ, не получится.

SERblY 17.04.2018 19:31

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

laimas 17.04.2018 19:43

Цитата:

Сообщение от SERblY
а Вы простите мне пытаетесь что то разжевать!

Так у вас ошибки через раз и два. Если у вас в кармане один кошелек, нужно ли задаваться вопросом в каком кошельке больше денег? Нет же, тогда причем тут WHERE в вашем запросе для получения макс. значений из базы? Напрашивается ответ - либо вы не то делаете, либо структура ваших данных далека от нужной, если продукты, это одна таблица.

Так что оставьте пока как есть, изучайте от Smarty до JS, по мере получения знаний дорабатывайте. Более конкретного вам никто не скажет, ибо ни кто не знает что и как у вас делается на сервере.

SERblY 18.04.2018 18:11

тогда такой вопрос , помогите, подскажите как и можно ли как то засунуть значение переменной смарти в скрипт ну например {%$max-price%}
ну ведь должен же быть вариант ?

laimas 18.04.2018 18:36

https://www.smarty.net/docsv2/ru/lan....tpl#id2624346

SERblY 18.04.2018 18:53

я уже писал что тоже раньше отписывался так, и умею отписываться ссылками, человек понимает лучше когда ему рабочий пример дают и он догоняет как это действует, тут кроме Ронни походу ваще никто не помогает по крайней мере с даты моей регистрации я 3 раза мб 4 обращался сюда за помощью только ронни помогает, а не херачит 100500 заумных
постов

Ладно и на этом Спасибо!

laimas 18.04.2018 19:05

Ну да, блин, вместо того, чтобы читать документацию, что нужно, если хотите писать код, будем дуть губки и обижаться.

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

SERblY 18.04.2018 21:39

да никто "губки не дует", все путем...
просто то что для Вас 5 мин клавиши нажать, для меня темный лес, я вытащил эту максимальную цену в переменную $max_price , надеялся что тупо покажут как воткнуть ее в этот слайдер, т.к. у меня не получилось, вот и все, тут мне никто не чем не обязан и нечего мне не должен, все люди вольны кому то подсказывать или показывать или помогать по своему собственному разумению! думаю мы отошли от темы и уже нездоровая переписка тут началась...

laimas 18.04.2018 22:45

Цитата:

Сообщение от SERblY
просто то что для Вас 5 мин клавиши нажать, для меня темный лес, я вытащил эту максимальную цену в переменную $max_price , надеялся что тупо покажут как воткнуть ее в этот слайдер

Тупо втыкать дело не хитрое, но вряд ли результат будет. А чтобы был результат, нужно изучать документацию, выполняя примеры из нее для усвоения. Без этого, увы, понимания не будет, а я не намерен пересказывать документацию. Человеку можно помочь в исправлении ошибки, но заставить себя изучать то, что требуется вам же, вы можете только сами. И нечего пенять на кого-то.

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

Не однократно говорилось и о том, что прежде чем в шаблоне использовать переменную, ее нужно определить - $smarty->assign('name_var', значение), и только потом в шаблоне вывод {name_var}, при этом $ или % используется согласно тому, что определено конфигурацией.

Было сказано, что можно в шаблоне в секции <script> вывести таким образом макс. значение

var max = {переменная Smarty, которой из логики передали макс. значение};

а далее в скрипте везде вместо 10000 использовать max.

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

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

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

SERblY 19.04.2018 10:33

я Вас понял что можно все, опять много букв я понимаю что нужно объявить переменную и т.д., я учусь только и делаю САМ что могу повторюсь, и зашел на форум как раз чтобы на моем рабочем примере мне показали как должен выглядеть код и что где дописано должно быть

SERblY 19.04.2018 10:34

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

laimas 19.04.2018 13:46

Цитата:

Сообщение от SERblY
зашел на форум как раз чтобы на моем рабочем примере

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

SERblY 19.04.2018 15:28

по пальцам:
<script type="text/javascript">
jQuery(document).ready(function(){


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

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]);
}
});


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>


есть переменная Smarty (не важно как я ее получаю) {%$max_price%}, она в шаблоне тупо выводит максимальное значение поля цена из базы, как ее правильнее "ЗАПИХАТЬ" (со всех точек зрения чтобы был рабочий вариант), в выше приведенный скрипт за место статического ручками значения 1000000 , так надеюсь правильно изложил!

ПС: Потому что тупо вставить в скрипт на место 1000000 вот это {%$max_price%} НЕПРАВИЛЬНО, не будет работать и даже если будет будут глюки так как будут конфликты там из-за символов (это Вы до меня донесли это я понял)


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