<div class="large-container" style="text-align:center;">
<form action="<?php echo Url::toRoute(['categories/index', 'alias'=>$mainCategory->alias,'mod'=>$params['mod']]) ?>" style="width:90%;" id="filterByParams" pjax-container>
<div class="container-tab">
<ul class="side-filter__list accordion-tabs">
<?php if (!empty($productParams) OR (!empty($providers))):
$i = 0;
$maxCount = SystemSetting::getMaxCountFiltersCats();
foreach ($productParams as $pName => $param):?>
<li class="tab-head-cont">
<a href="#" onclick="return false;" class="side-filter__item filter-param"><?= $pName;?></a>
<section>
<li class="side-filter__item">
<?php
asort($param['value']);
foreach ($param['value'] as $v) {
$seo_name = $seoProps->get($pName,$v);
$cheked = (!empty($productParam) && in_array($seo_name,explode('_',$productParam))) ? true : false;
echo Html::input('checkbox', 'productParam[]', $seo_name, ['id' => 'productParam-'.$pName.'~'.$v, 'checked' => $cheked]);
echo Html::label(Html::tag('span', null).$v, 'productParam-'.$pName.'~'.$v);
$cheked = false;
}
?>
</li>
</section>
<?php
$i++;
if($i >= $maxCount) break;
?>
</li>
<?php endforeach; ?>
<?php endif; ?>
<?php if(!empty($providers)): ?>
<li class="tab-head-cont">
<a href="#" onclick="return false;" class="side-filter__item filter-param"><?=mb_convert_case(yii::t('app','providers'), MB_CASE_TITLE, "UTF-8");?></a>
<section>
<li class="side-filter__item">
<?php
foreach ($providers as $provider) {
$chek = (in_array($provider->id, $provIds)) ? true : false;
echo Html::input('checkbox', 'provider[]', $provider->id, ['id' => 'provider-'.$provider->id, 'checked' => $chek]);
echo Html::label(Html::tag('span', null).$provider->providerProfile->name_company, 'provider-'.$provider->id);
$chek = false;
};
?>
</li>
</section>
</li>
<?php endif; ?>
<?php if (!$session->isActive){
$session = Yii::$app->session;
$session->open();
}
$sortProducts = new SortProducts();
?>
<select class="prod-head__select" onchange="window.location.href='/catalog-sort?type=' + this.value">
<?php foreach ($sortProducts->getTypes() as $type => $options) {?>
<option <?php if ($sortProducts->isActive($type)) echo 'selected' ?> value="<?= $type ?>"><?= $options['title'] ?></option>
<?php } ?>
</select>
</ul>
</div>
</form>
</div>
и скрипт
$(document).on('submit', 'form[pjax-container]', function(event) {
/*$.pjax.defaults = {
scrollTo: false,
};
$.pjax.submit(event, '#pjax-container')*/
event.preventDefault();
if($(this).serialize() == ''){
location.href = THIS_URL;
}else{
var filterurl = $(this).serialize();
if(filterurl.split('productParam%5B%5D=').length>1){
filterurl = filterurl.split('productParam%5B%5D=');
filterurl = filterurl.join('_');
}
if(filterurl.split('provider%5B%5D=').length>1){
filterurl = filterurl.split('provider%5B%5D=');
for (var i = 1; i<filterurl.length; i++){
filterurl[i] = 'provider-'+filterurl[i]
}
filterurl = filterurl.join('_');
}
location.href= THIS_URL+'/filter/'+filterurl.substring(1).replace(/&/g,'');
}
скрипт корректирует урлы на которые посылаются запросы из формы. Это действие мне необходимо сохранить для элементов, находящихся в <li>...</li>. После <li> у меня идёт блок
<?php if (!$session->isActive){
$session = Yii::$app->session;
$session->open();
}
$sortProducts = new SortProducts();
?>
<select class="prod-head__select" onchange="window.location.href='/catalog-sort?type=' + this.value">
<?php foreach ($sortProducts->getTypes() as $type => $options) {?>
<option <?php if ($sortProducts->isActive($type)) echo 'selected' ?> value="<?= $type ?>"><?= $options['title'] ?></option>
<?php } ?>
</select>
к которому не надо применять действие скрипта. В этом блоке при событии onchange мне надо изменить переменную в сессии, закинув её по адресу
"/catalog-sort?type=' + this.value"
. Но это не получается сделать, т.к. вышеприведенный скрипт почему-то влияет на
onchange="window.location.href='/catalog-sort?type=' + this.value"
. Как в этой строке
$(document).on('submit', 'form[pjax-container]', function(event) {
исключить блок <select>...</select>?