activeCheckboxList

Hola, estoy intentando filtrar los resultados de una tabla mediante checkbox, luego de mucho investigar, di con la funcion activeCheckboxList.

Mi problema es que si bien aparece el preload, la misma no esta filtrando los resultados, y la verdad es que no se bien que hacer.

Soy mas que un principiante, aunque ya hace largos 7 años que programo no logro sacarle la vuelta al MVC

Si alguien me podria ayudar estare mas que agradecido.

Les cuento que tengo dos tablas tbl_post tbl_categorias

tbl_post (id title categoria_id)

tbl_categoria (id name)

Por el momento veo la lista de checkbox y ejecuta ajax, pero no resulve nada, siempre me muestra todos los resultados.

Si alguien me podria dar una mano estare mas que agradecido

Muchas gracias de antemano y aguante yii

View/Post/Index.php (view)




<h1>Posts</h1>


<?php

echo CHtml::activeCheckboxList(

  $model, 'id', 

  CHtml::listData(Categoria::model()->findAll(), 'id', 'name'),

  array('template'=>'<li>{input} {label}</li>',  'class'=>'categoryFilter',)

);

?>

 


<?php

Yii::app()->clientScript->registerScript('search',

    "var ajaxUpdateTimeout;

    var ajaxRequest;

   $('.categoryFilter').change(function(){

    category = $('.categoryFilter').serialize();

    $.fn.yiiListView.update(

     	'ajaxListView',

                {

                   url: '" . CController::createUrl('Post/index') . "',

				   data: category

                }

    );

});

	"

);


$this->widget('zii.widgets.CListView', array(

	'id'=>'ajaxListView',

    'dataProvider'=>$dataProvider,

    'itemView'=>'_view',

    'sortableAttributes'=>array(

        'id',

		'title',

		'categoria_id'

    ),

    

));

?>



y en mi PostController.php




public function actionIndex( array $category = array() )

{

	$model=new Categoria();

    $criteria = new CDbCriteria();

 

    if( count( $category ) > 0 )

	    $criteria->addInCondition( 'category', $category );

    $dataProvider = new CActiveDataProvider( 'Post', array( 'criteria' => $criteria, ) );

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

		'dataProvider' => $dataProvider,

		'model'=>$model, 

		

		) );

}



Hola, recuerda que serialize() de jquery solo funciona con formularios XD creo que tendrias que introducir CHtml::activeCheckboxList dentro de un widget de formulario, o un formulario sencillo.

Tambien recuerda que el checkbox list enviara solamente los valores de las casillas que esten "checked"

Saludos