форму обернул pjax-ком, сам виджет ListView тоже обернул pjax-ком. У каждого контейнера pjax-ка свой id. Далее сделал так:
Код: Выделить всё
<?php
$js = <<< JS
$("#usedSearch").on("pjax:end", function() {
$.pjax.reload({container:"#listUsed"});
});
JS;
$this->registerJs( $js, $position = yii\web\View::POS_READY);
?>
вод код фильтра - файл filter.php:
Код: Выделить всё
<?php
$js = <<< JS
$("#usedSearch").on("pjax:end", function() {
$.pjax.reload({container:"#listUsed"});
});
JS;
$this->registerJs( $js, $position = yii\web\View::POS_READY);
?>
<?php Pjax::begin(['id' => 'usedSearch']); ?>
<?php $form = ActiveForm::begin(['options' => ['data-pjax' => true]]); ?>
<div class="col-md-2 col-lg-2">
<?= $form->field($filterForm, 'Make')->dropDownList(FunctionsModel::getItemsMarkbrand(), ['prompt'=>'Выберите марку', 'options' => [@$_POST['FilterForm']['Make']=>['Selected'=>true] ]]); ?>
</div>
<div class="col-md-2 col-lg-2">
<?= $form->field($filterForm, 'Year')->dropDownList(FunctionsModel::__getAllYear(), ['prompt'=>'Выберите год', 'options' => [@$_POST['FilterForm']['Year']=>['Selected'=>true] ]]); ?>
</div>
<div class="col-md-2 col-lg-2">
<?= $form->field($filterForm, 'Owners')->dropDownList([1=>1, 2=>2, 3=>3, 4=>4, 5=>5, 6=>6, 7=>7, 8=>8], ['prompt'=>'Выберите кол-во', 'options' => [@$_POST['FilterForm']['Owners']=>['Selected'=>true] ]]); ?>
</div>
<div class="col-md-2 col-lg-2">
<?= $form->field($filterForm, 'From')->dropDownList($probeg, ['prompt'=>'...', 'options' => [@$_POST['FilterForm']['From']=>['Selected'=>true] ]]); ?>
</div>
<div class="col-md-2 col-lg-2">
<?= $form->field($filterForm, 'To')->dropDownList($probeg, ['prompt'=>'...', 'options' => [@$_POST['FilterForm']['To']=>['Selected'=>true] ]]); ?>
</div>
<div class="col-md-2 col-lg-2">
<?= $form->field($filterForm, 'Transmission')->dropDownList(FunctionsModel::__getAllTransmission(), ['prompt'=>'Выберите', 'options' => [@$_POST['FilterForm']['Transmission']=>['Selected'=>true] ]]); ?>
</div>
<div class="col-md-2 col-lg-2">
<?= $form->field($filterForm, 'PriceFrom')->textInput(['placeholder'=>'100000', 'value' => @$_POST['FilterForm']['PriceFrom'] ]); ?>
</div>
<div class="col-md-2 col-lg-2">
<?= $form->field($filterForm, 'PriceTo')->textInput(['placeholder'=>'500000', 'value' => @$_POST['FilterForm']['PriceTo'] ]); ?>
</div>
<div class="col-md-2 col-lg-2">
<br />
<?= Html::submitButton('Искать', ['class' => 'btn btn-primary btn-lg colorBtn', 'id'=>'sub', 'name' => 'filterAuto-button', 'style'=>'border:none;']) ?>
</div>
<?php ActiveForm::end(); ?>
<?php Pjax::end(); ?>
вот код виджета ListView - info.php
Код: Выделить всё
<?= $this->render('/inc/filter', ['filterForm'=>$filterForm]); ?>
<?php
$dataProvider = new ActiveDataProvider([
'query' => $cars,
'pagination' => [
'pageSize' => 32,
],
]);
?>
<?php Pjax::begin(['id' => 'listUsed']); ?>
<?php
echo ListView::widget([
'dataProvider' => $dataProvider,
'itemView' => '_listUsed',
'options' => [
//'id' => 'carsusedlistview'
],
'pager' => [
'firstPageLabel' => '««',
'lastPageLabel' => '»»',
'nextPageLabel' => '»',
'prevPageLabel' => '«',
'maxButtonCount' => 10,
],
]);
?>
<?php Pjax::end(); ?>
экшен
Код: Выделить всё
public function actionUsed()
{
$brands = Auto::find()->select('Make')->groupBy('Make')->all(); //бренды авто
$cars = Auto::find()->asArray(); //авто со всеми параметрами
//if( isset($_POST['FilterForm']) ){
//$filterForm = $_POST['FilterForm'];
//$cars = FunctionsModel::__getUsedFilter($filterForm);
//}
$filterForm = new FilterForm();
print '<pre>';
print_r($_REQUEST);
print '</pre>';
return $this->render('used', ['cars'=>$cars, 'brands'=>$brands, 'filterForm'=>$filterForm]);
}
вот отправил форму через pjax. в консоли браузера появились 2 ссылки.
далее видно, что ушло название toyota
перейдя на другую сгенерированную pjax-ком ссылку видно, что данных вроде как не передано.
а в response получаю часть верстки.
Ребят, что я делаю не так!???? В первой версии yii, можно было легко обновить listView просто с помощью
$.fn.yiiListView.update(
'ajaxListView',
{data: ajaxRequest}
)
а тут, я не пойму куда рыть, где ошибка!?? ПОМОГИТЕ ЛЮДИ!)))))))