Вопрос к гуру

С помощью CListView я вывожу различные товары в index.php. Также у мнея есть фильтры (checkboxes) для выборки товаров по типу, цвету и бренду. Фильтры работают отлично. Но после каждой выборки я хочу обновлять типы, цвета и бренды в соответствии с тем, какие типы, цвета и бренды есть у выбранных товаров. Но мне не удается отправить массивы с новыми значениями типов, цветов и брендов в index.php, чтобы они были там доступны.

функция в контроллере, которая возвращает отфильтрованные товары с соответственными списками типов, цветов и брендов


    public function actionFilterItems()       

    {

        

        $criteria = new CDbCriteria;


         ....      

                

        $this->render('index',array(

            'dataProvider'=>$dataProvider,

            'type'=>$type,//new type list

            'colour'=>$colour,//new colour list

            'brands'=>$brands,//new brand list

        ));                

    }

В index.php вызываю ajax CListView update


                $.fn.yiiListView.update(

                    'salesListView',

                    {

                        type: 'POST',

                        url: '/catalogue/FilterItems', 

                        ...

                    }

                ) 

Я пробовал с помощью viewData передать массивы и они становятся доступны во _view файле. Но мне нужно после каждой удачной выборки вызвать js функцию, которая бы обновляла все списки фильтров с чекбоксами, но массивы $type, $colours и $brands пустые в index.php

‘afterAjaxUpdate’=>‘js:function(id, data) {updateFilters()}’,

function updateFilters() {

alert(<?php echo CJavaScript::encode($type) ?>); //пусто

}

Что я делаю не так?

А почему вы не используете модель для поиска ?

Она будет возвращать CActiveDataProvider который вы и заюзаете в CListView и саму модель кстати тоже. То есть все значения фильтров не исчезнут при обновлении, так как вы сохраните их в модели.