С помощью 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) ?>); //пусто
}
Что я делаю не так?