[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не получается получить значения ползунка js PHP
Страницы: 1, 2
apdate
Всем дорого вечера помагите объясните как получить значение в php из переменных min и max

вот html -ка

{* Аяксовый фильт по цене *}
{if $prices && $nomenklatured|count > 0}
<div class="filter_bg">
{* Заголовок блока *}
<div class="h6 p-x-1 p-y-05 font-weight-bold">
<span
data-language="{$translate_id['features_price']}">{$lang->features_price}</span>
</div>
<div
class="m-b-2">
<div
class="row m-y-1 p-x-05">
{* Минимальная цена товаров *}
<div class="col-xs-6">
<input
id="fn-slider-min" name="p[min]" value="{($prices->current->min|default:$prices->range->min)|escape}" data-price="{$prices->range->min}" type="text" class="form-control">
</div>


{* Максимальная цена товаров *}
<div class="col-xs-6">
<input
id="fn-slider-max" name="p[max]" value="{($prices->current->max|default:$prices->range->max)|escape}" data-price="{$prices->range->max}" type="text" class="form-control">
</div>
</div>

{* Слайдер цен *}
<div id="fn-slider-price" class="cms"></div>
</div>
</div>

{/if}

{* Фильтр по свойствам *}
{if $features}
{foreach $features as $key=>$f}
{* Название свойства *}
<div class="filter_bg">
<div
class="h6 p-x-1 p-y-05 font-weight-bold" data-feature="{$f->id}">{$f->name}
<span class="fn_and_{$f->id} feature_arrow_up" onclick="change_feature({$f->id})"> </span>
<span
class="fn_or_{$f->id} feature_arrow_down" onclick="change_feature_down({$f->id})" style="display: none;"> </span>
</div>


{if $f->slider == 1}
<div class="m-b-2 p-x-05 fn_feature_id_{$f->id}">
<div
class="m-b-2 fn-slider_features_block" data-fid="{$f->id}">
<div
class="row m-y-1 p-x-05">
{* Минимальное значение выбранного сфойства товаров *}
<div class="col-xs-6">
<input
value="{$f->range->min|escape}" data-val="{$f->range->min}" type="text" class="form-control fn-slider_feature_min">
</div>


{* Максимальное значение выбранного сфойства товаров *}
<div class="col-xs-6">
<input
value="{$f->range->max|escape}" data-val="{$f->range->max}" type="text" class="form-control fn-slider_feature_max">
</div>
</div>

{* Слайдер свойств *}
<div class="cms fn-slider_feature"></div>
<a
class="apply_reset_feature apply" href="javascript:;" style="float: left;margin-left: 10px;">Применить</a>
<a
class="apply_reset_feature reset" href="javascript:;" style="float: right;margin-right: 10px;">Сбросить</a>
</div>
</div>

{/if}


{if $f->slider == 0}
<div class="m-b-2 p-x-05 fn_feature_id_{$f->id}">
{* Сброс всех свойств *}
<div class="feature_count">
<label
class="c-input c-checkbox">
<input
onchange="window.location.href='{furl params=[$f->url=>null, page=>null]}'" type="checkbox"{if !$smarty.get.$key} checked{/if}/>
<span
class="c-indicator"></span>
<span
data-language="{$translate_id['features_all']}">{$lang->features_all}</span>
</label>
</div>



{* Значения свойств *}
{foreach $f->options as $o}
<div class="feature_count">
<label
class="c-input c-checkbox">
<input
onchange="window.location.href='{furl params=[$f->url=>$o->translit, page=>null]}'" type="checkbox"{if $smarty.get.{$f@key} && in_array($o->translit,$smarty.get.{$f@key})} checked{/if}/>
<span class="c-indicator"></span>
{$o->value|escape}
</label>
</div>

{/foreach}
</div>
{/if}
</div>
{/foreach}
{/if}
{* @END Фильтр по свойствам *}

вот код js

/* Аяксовый фильтр по цене */
if( $( '#fn-slider-price.cms' ).size() ) {
var slider_all = $( '#fn-slider-min, #fn-slider-max' ),
slider_min = $( '#fn-slider-min' ),
slider_max = $( '#fn-slider-max' ),

current_min = slider_min.val(),
current_max = slider_max.val(),
range_min = slider_min.data( 'price' ),
range_max = slider_max.data( 'price' ),
link = window.location.href.replace( /\/page-(\d{1,5})/, '' ),
ajax_slider = function() {
/*features_slider*/
var data = {ajax: 1, 'p[min]': slider_min.val(), 'p[max]': slider_max.val()};
$('.fn-slider_features_block').each(function() {
var block = $(this),
fid = block.data('fid'),
slider_min = block.find('.fn-slider_feature_min'),
slider_max = block.find('.fn-slider_feature_max');
if (block.hasClass('fn-in_filter')) {
data['feature_' + fid + '[min]'] = slider_min.val();
data['feature_' + fid + '[max]'] = slider_max.val();
} else {
slider_min.val(slider_min.data('val'));
slider_max.val(slider_max.data('val'));
slider_max.trigger('change');
}
}
);
/*/features_slider*/
$.ajax( {
url: link,
/*features_slider*/
//data: {
// ajax: 1,
// 'p[min]': slider_min.val(),
// 'p[max]': slider_max.val()
//},

data: data,
/*/features_slider*/
dataType: 'json',
success: function(data) {
$( '#fn-nomenklatured_content' ).html( data.nomenklatured_content );
$( '.shpu_pagination' ).html( data.nomenklatured_pagination );
$('#fn-nomenklatured_sort').html(data.nomenklatured_sort);
$('.ajax_wait').remove();
}
}
)
};
link = link.replace(/\/sort-([a-zA-Z_]+)/, '');

$( '#fn-slider-price.cms' ).slider( {
range: true,
min: range_min,
max: range_max,
values: [current_min, current_max],
slide: function(event, ui) {
slider_min.val( ui.values[0] );
slider_max.val( ui.values[1] );
},
stop: function(event, ui) {
slider_min.val( ui.values[0] );
slider_max.val( ui.values[1] );
$('.col-lg-9').append('<div class="ajax_wait"></div>');
ajax_slider();
}
}
);

slider_all.on( 'change', function() {
$( "#fn-slider-price.cms" ).slider( 'option', 'values', [slider_min.val(), slider_max.val()] );
ajax_slider();
} );

/*features_slider*/
$('.fn-slider_features_block').each(function() {
var block = $(this);
var slider_all = block.find('.fn-slider_feature_min, .fn-slider_feature_max'),
slider_min = block.find('.fn-slider_feature_min'),
slider_max = block.find('.fn-slider_feature_max');
block.find('.fn-slider_feature').slider({
range: true,

min: slider_min.data('val'),
max: slider_max.data('val'),
values: [slider_min.val(), slider_max.val()],
slide: function(event, ui) {
slider_min.val( ui.values[0] );
slider_max.val( ui.values[1] );
},
stop: function(event, ui) {
slider_min.val( ui.values[0] );
slider_max.val( ui.values[1] );
}
}
);
slider_all.on('change', function() {
block.find('.fn-slider_feature').slider( 'option', 'values', [slider_min.val(), slider_max.val()] );
});
block.find('.apply_reset_feature').on('click', function() {
if ($(this).hasClass('apply')) {
block.addClass('fn-in_filter');
} else {
slider_min.val(slider_min.data('val'));
slider_max.val(slider_max.data('val'));
slider_max.trigger('change');
block.removeClass('fn-in_filter');
}
ajax_slider();
return false;
});
});
/*/features_slider*/

// Если после фильтрации у нас осталось товаров на несколько страниц, то постраничную навигацию мы тоже проведем с помощью ajax чтоб не сбить фильтр по цене

$( document ).on( 'click', '.shpu_pagination .is_ajax a,#fn-nomenklatured_sort .is_ajax a', function(e) {
e.preventDefault();
$('.col-lg-9').append('<div class="ajax_wait"></div>');
var link = $(this).attr( 'href' ),
send_min = $("#fn-slider-min").val();
send_max = $("#fn-slider-max").val();
/*features_slider*/
var data = {ajax: 1, 'p[min]': send_min, 'p[max]': send_max};
$('.fn-slider_features_block').each(function() {
var block = $(this),
fid = block.data('fid'),
slider_min = block.find('.fn-slider_feature_min'),
slider_max = block.find('.fn-slider_feature_max');
if (block.hasClass('fn-in_filter')) {
data['feature_' + fid + '[min]'] = slider_min.val();
data['feature_' + fid + '[max]'] = slider_max.val();
} else {
slider_min.val(slider_min.data('val'));
slider_max.val(slider_max.data('val'));
slider_max.trigger('change');
}
}
);
/*/features_slider*/
$.ajax( {
url: link,
/*features_slider*/
//data: { ajax: 1, 'p[min]': send_min, 'p[max]': send_max },

data: data,
/*/features_slider*/
dataType: 'json',
success: function(data) {
$( '#fn-nomenklatured_content' ).html( data.nomenklatured_content );
$( '.shpu_pagination' ).html( data.nomenklatured_pagination );
$('#fn-nomenklatured_sort').html(data.nomenklatured_sort);
$('.ajax_wait').remove();
}
}
);
} );
}


а вот код php

$prices = array();
$prices['current'] = $this->request->get('p');
if (isset($prices['current']['min']) && isset($prices['current']['max']) && $prices['current']['max'] != '' && $prices['current']['min'] != '') {
$filter['price'] = $prices['current'];
} else {
unset($prices['current']);
}


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

a:2:{s:3:"min";s:1:"0";s:3:"max";s:2:"20";}

это значения из фильтра цены а я двигал фильтр характеристик товара (

помогите разобраться как мне получить значения ползунка именно характеристик а не цены
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.