Добрый день,
делаю вот такую штуку на клиенте, loadMore И 3 фильтра)
Вопрос в том как их заставить работать вместе?
Делеал через ActiveDataProvider и jquery
ВОт пару кусков кода)
Селект
<?php $this->registerJS('
$("select").click(function(){
var param = $(\'meta[name=csrf-param]\').attr("content");
var token = $(\'meta[name=csrf-token]\').attr("content");
$.ajax({
type: "post",
data: {
"matches": $(this).val(),
param: token
},
success: function(data){
$(".list-view").append(data);
// if (page >= pageCount){ $(\'#js-load-more\').hide(); }
}
});
});
');
И сам лоадМоре
<?php $this->registerJS('
$('#js-load-more').click(function(){
$.ajax({
type: "post",
data: {
"page": page+1,
param: token
},
success: function(data){
page++;
loadingFlag = false;
$('#listView').append(data);
if (page >= pageCount){ $('#js-load-more').hide(); }
}
});
});
Наверное еще сам акшен
public function actionIndex(){
$query = User::find()->where(['rights' => new Expression('IFNULL(rights,0) | '.UserRightsEnum::BGO_PASS)]);
$this->processPageRequest('page');
$provider = new ActiveDataProvider([
'query' => $query,
'sort'=> ['defaultOrder' => ['id'=> \Yii::$app->request->post('matches') ? SORT_DESC : SORT_ASC]],
'pagination' => [
'pageSize' => 6,
'page' =>\Yii::$app->request->get('page'),
],
]);
if (\Yii::$app->request->isAjax){
return $this->renderPartial('_list', [
'dataProvider' => $provider,
]);
} else {
return $this->render('index', [
'dataProvider' => $provider,
]);
}
}
Все кто сталкивался, буду признателен если поможете) что-никак не соображу