Link Filtered

I created a search form with gii module, and it does work, now I want to create links outside the form, that filter the widget, which filters the example link1 = apparel category field of the table activities

my model


public function search()

{

$criteria=new CDbCriteria;

$criteria->compare('nome',$this->nome,true);

$criteria->compare('coordinate',$this->coordinate,true);

return new CActiveDataProvider($this, array(

'criteria'=>$criteria,


));




public function getCategoria(){

            $criteria = new CDbCriteria();

            $criteria->compare('categoria','sportiva);

                return new CActiveDataProvider($this, array(

                        'criteria'=>$criteria,));

        }

}

my controller




public function actionIndex()

	{

		$dataProvider=new CActiveDataProvider('Attivita');

		

            

            $model=new Attivita('search');// carica funzione search

		$model->unsetAttributes();  // clear any default values

		if(isset($_GET['Attivita']))

			$model->attributes=$_GET['Attivita'];


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

			'model'=>$model,

                        

		));

            

         

            

            

            

	}


 public function ActionCategoria(){

           $model=new Attivita('categoria');

		$model->unsetAttributes();  // clear any default values

		if(isset($_GET['Attivita']))

			$model->attributes=$_GET['Attivita'];


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

			'model'=>$model,

                       

		));

        }




my view





<div id= menu_link>

my proble <img src='http://www.yiiframework.com/forum/public/style_emoticons/default/smile.gif' class='bbc_emoticon' alt=':)' />:)

</div>




<!--Form search-->

<div id="cerca">

    <?php $this->renderPartial('_search',array(

        'model'=>$model,

)); ?>

    <!-- Results-->

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

        'dataProvider'=>$model->search(),

        'itemView'=>'_view2',

       

)); ?>

    

</div>



Hi synapse10,

"_search" form is submitted using GET method.

It means that it calls the actionIndex with the url something like this:




http://your.site.com/index.php?r=yourController/index?Attivita[nome]=xxx&Attivita[coordinate]=yyy

// or if you are using SEO friendly url

http://your.site.com/yourController/index?Attivita[nome]=xxx&Attivita[coordinate]=yyy



As you see, the search parameters are in the query string part of the url. That’s why actionIndex retrieve the search parameters by:




	if(isset($_GET['Attivita']))

		$model->attributes=$_GET['Attivita'];



So, now you can setup the filter link like:




echo CHtml::link('Search Sports', array('yourController/index', 'Attivita["categoria"' => 'sportiva'));



You just have to modify your search method to handle “categoria”. There’s no need to provide a customized search method named “getCategoria” or a dedicated action named “actionCategoria”.

Sorry, I’m a newbie sorry, but I have to intercept the click of the link … or pass any parameters? in the search function of the model




public function search()

{

    $criteria=new CDbCriteria;

    $criteria->compare('nome',$this->nome,true);

    $criteria->compare('coordinate',$this->coordinate,true);

    $criteria->compare('categoria',$this->categoria,true);

    return new CActiveDataProvider($this, array(

        'criteria'=>$criteria,

    ));

}






public function actionCategoria($category)

{

    $model=new Attivita('search');

    $model->unsetAttributes();  // clear any default values

    $model->categoria = $category;

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

        'model'=>$model,

    ));

}






<div id= menu_link>

<?php echo CHtml::link('Sportiva', array('yourController/categoria', 'category'=>'sportiva')); ?>

</div>


<!--Form search-->

<div id="cerca">

    <?php $this->renderPartial('_search',array('model'=>$model,)); ?>

<!-- Results-->

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

        'dataProvider'=>$model->search(),

        'itemView'=>'_view2',

    )); ?>

</div>



http://www.yiiframework.com/wiki/381/cgridview-clistview-and-cactivedataprovider