Yii Ajax CListview过滤,使用两个复选框列表

时间:2014-09-30 14:56:59

标签: php ajax yii

我想要的是同一页面上的2个复选框列表,过滤相同的ListView。 我的代码

查看

echo CHtml::beginForm(CHtml::normalizeUrl(array('message/index')), 'get', array('id'=>'filter-form', 'style'=>'display:inline'));

        echo CHtml::checkBoxList('products', (isset($_GET['products'])) ? $_GET['products'] : '', CHtml::listData(Category::model()->with('products')->findAll('t.ParentID = 1 AND products.CategoryID = t.ID'), 'ID', 'Name'),
        array( 'class'=>'productsFilter'));


        echo  CHtml::endForm();

同样在View

<?php $this->widget('zii.widgets.CListView', array(
        'dataProvider'=>$dataProvider,
        'itemView'=>'_view',
'sortableAttributes'=>array(
        'id'=>'cronologico',
        'transaction'
    ),
    'id'=>'ajaxListView',
));

 ?>

<?php
Yii::app()->clientScript->registerScript('search',
    "var ajaxUpdateTimeout;
    var ajaxRequest;

        $('.productsFilter').change(function(){
    products = $('.productsFilter').serialize();
    $.fn.yiiListView.update(
        'ajaxListView',
        {data: products}
    );
});"    
);

和控制器

public function actionIndex( array $products = array())
        {


            $criteria = new CDbCriteria();
                if( count( $products ) > 0 ) 
                        $criteria->addInCondition( 'CategoryID', $products );
                        $dataProvider = new CActiveDataProvider( 'Products', array( 'criteria' => $criteria, 
                                'Pagination' => array (
                  'PageSize' => 12 
                                ),
                        ));
                $this->render('index',array(
                        'dataProvider'=>$dataProvider,
                ));
        }

我想创建另一个复选框列表,具有不同的条件并调用我的Ajax请求。不确定如何去做,上面的代码工作正常,而不是一个复选框列表我想要两个。

感谢高级

0 个答案:

没有答案