@frmax
человек

Как заставить все фильтры работать в группе?

Добрый день,

делаю вот такую штуку на клиенте, 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,
            ]);
        }

    }


Все кто сталкивался, буду признателен если поможете) что-никак не соображу
  • Вопрос задан
  • 256 просмотров
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Проще через pjax. Но не обновлять контент, а дописывать ниже.
Ответ написан
bitver
@bitver
При клике в ajax.data помимо токена и страницы передавайте параметры фильтра. А в контроллере все по стандарту load() и остальное вроде у вас у вас готово.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы