Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   JQuery UI Slider (https://javascript.ru/forum/jquery/61220-jquery-ui-slider.html)

cheponya 09.02.2016 13:11

JQuery UI Slider
 
Всем привет!
в фильтре стоит ползунок с jQuery UI Slider. Не странно ведет себя при уменьшении диапазона.
$min = 0.5
$max = 1.5

шаги установлены в 0.1, в общем когда диапазон полный выбран 0.5-1.5 показывает 7 результатов, при смещении любого ползунка в диапазон от 1.0 до 1.5 и наоборот, показывает 0 результатов, а 0.5 до 1.0 так же 7 результатов.
Очевидно что он видит что в результате запроса нету значений от 1.0 до 1.5..... но остальные то почему он не показывает? допустим если выбрать диапазон от 0.5 до 1.4 показывает 0.

помогите разобраться пожалуйста

<script>
    $(function() {
        $("#slider-range'.$res['ID'].'").slider({
         range: true,
         min: '.$min.',
         max: '.$max.',
         step : 0.1,
         values: [ '.$min.', '.$max.' ],
         
             slide: function( event, ui ) {
 
                 $("input[name=\'opt_'.$res['ID'].'\']").val(ui.values[ 0 ] + " - " + ui.values[ 1 ]);
                 $("#formFilter input[type=\'text\']").trigger(\'click\', [event.pageX, event.pageY]);
             }
          });
          $("input[name=\'opt_'.$res['ID'].'\']").val($("#slider-range'.$res['ID'].'").slider("values", 0) + " - " + $( "#slider-range'.$res['ID'].'" ).slider("values", 1 ) );
    });
</script>
 <div id="slider-range'.$res['ID'].'"></div>
 <input type="text" name="opt_'.$res['ID'].'" style="border:0; color:#f6931f; font-weight:bold;" />
 <input type="hidden" name="def_opt_'.$res['ID'].'" value="'.$min.' - '.$max.'" />


Может запрос с условием не верный? Точнее запрос то верный, он возвращает 7 результатов как и есть.

$q = $mysqli->query("SELECT `OPT`, `OPT_2` FROM `properties` WHERE `HIDE` != '1' AND `GOODS` IN (SELECT `ID` FROM `goods` WHERE `CATEGORY` = '".$mysqli->escape_string($_FILTER)."') AND `TITLE` LIKE '".$res['TITLE']."' ORDER BY `OPT_2`=0, -`OPT_2` ASC, `OPT_2`, `OPT`=0, -`OPT` ASC, `OPT` LIMIT 1");
                            if($q->num_rows > 0){
                                $r = $q->fetch_assoc();
                                $r['OPT_2'] != '' ? $max = $r['OPT_2'] : $max = $r['OPT'];
 
                                $max = str_replace(',', '.', $max);
                            }

рони 09.02.2016 13:25

cheponya,
сделайте нормальный макет

cheponya 09.02.2016 13:27

Цитата:

Сообщение от рони (Сообщение 406970)
cheponya,
сделайте нормальный макет

Спасибо, что помогли...

cheponya 09.02.2016 13:34

Цитата:

Сообщение от рони (Сообщение 406970)
cheponya,
сделайте нормальный макет

Я в JQuery мягко говоря не силен....мне достался такой вот код. Много зависимостей по этому менять что-то чревато

рони 09.02.2016 13:42

cheponya,
в таком виде и описании врятли кто поможет

cheponya 09.02.2016 13:48

Цитата:

Сообщение от рони (Сообщение 406974)
cheponya,
в таком виде и описании врятли кто поможет

Плохое описание оО
Какое же тогда хорошее? Запрос SQL в принципе проверять то не надо, она возвращает значения....
Остается только код виджета комментировать....да только как уже писалось выше....в JQuery я не силен...данный виджет я прошерстил полностью в описаниях - косяка не нашел. Потому и решил к людям которые в этом разбираются обратиться.

Что Вам нужно описать, что бы было доступно?

cheponya 09.02.2016 14:18

Цитата:

Сообщение от рони (Сообщение 406974)
cheponya,
в таком виде и описании врятли кто поможет

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

$(function() {
                        $("#slider-range").slider({
                          range: true,
                          min: <?=$min?>,
                          max: <?=$max?>,
                          values: [ <?=$min?>, <?=$max?> ],
                          slide: function( event, ui ) {
                            $("#amount").val(ui.values[ 0 ] + " - " + ui.values[ 1 ]);
                            $("#formFilter input[type='text']").trigger('click', [event.pageX, event.pageY]);
                          }
                        });
                        $("#amount").val($("#slider-range").slider("values", 0) +
                          " - " + $( "#slider-range" ).slider("values", 1 ) );
                      });

<div id="slider-range"></div>
                <input type="text" id="amount" name="amount" style="border:0; color:#f6931f; font-weight:bold;" />

cheponya 09.02.2016 14:21

Цитата:

Сообщение от cheponya (Сообщение 406978)
есть еще в таком виде....
тут выводится цена, и фильтр с ползунком работает нормально.

$(function() {
                        $("#slider-range").slider({
                          range: true,
                          min: <?=$min?>,
                          max: <?=$max?>,
                          values: [ <?=$min?>, <?=$max?> ],
                          slide: function( event, ui ) {
                            $("#amount").val(ui.values[ 0 ] + " - " + ui.values[ 1 ]);
                            $("#formFilter input[type='text']").trigger('click', [event.pageX, event.pageY]);
                          }
                        });
                        $("#amount").val($("#slider-range").slider("values", 0) +
                          " - " + $( "#slider-range" ).slider("values", 1 ) );
                      });

<div id="slider-range"></div>
                <input type="text" id="amount" name="amount" style="border:0; color:#f6931f; font-weight:bold;" />

кроме инпутов тут все тоже самое....

cheponya 09.02.2016 14:22

Может проблема какая то из-за того, что в первом примере значения дробные?

cheponya 09.02.2016 14:24

рони,
дружище, помогай)


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