Hello, I have broblem in my Cgridview, I would like make filter working, I create this code Manually the sort columns working fine, but input filter not working!!
Controller
public function actionBeneficiaireSuivi() {
$model =new LigneCommande('searchConsultantInfos');
$model->unsetAttributes();
$id_consultant = '';
if(isset($_GET['id'])){
$id_consultant = $_GET['id'];
$model->attributes = $id_consultant;
}
$params =array(
'model'=>$model,
);
$this->render('beneficiaireSuivi', $params);
}
In View Page (beneficiaireSuivi)
<?php
Yii::app()->clientScript->registerScript(‘searchConsultantInfos’, "
$('.search-button').click(function(){
$('.search-form').toggle();
return false;
});
$('.search-form form').submit(function(){
//console.log( $(this).serialize() );
$.fn.yiiGridView.update('consultant-grid', {
data: $(this).serialize()
});
return false;
});
");
?>
<?php echo CHtml::link(Yii::t(‘app’, ‘Advanced Search’),’#’,array(‘class’=>‘search-button’)); ?>
<div class="search-form" style="display:none">
<?php
$this->renderPartial('_searchBenefSuivi', array(
'model' => $model,
));
?>
</div>
<?php
$this->widget(‘zii.widgets.jui.CJuiTabs’, array(
'tabs'=>array(
"Liste des béneficiaires"=>array(
"id"=>"admin",
"content"=>$this->renderPartial('_renderPrestation', array(
'model'=>$model,
),
$this
)
),
),
'options'=>array(
'collapsible'=>false,
),
'id'=>'tabs',
'headerTemplate'=>'<li><a href="{url}" title="{title}">{title}</a></li>',
'htmlOptions'=>array('style'=>'display:none'),
));
?>
In In View Page (_renderPrestation.php)
?php
$pageSize = Yii::app()->user->getState(‘pageSize’,Yii::app()->params[‘defaultPageSize’]);
$this->widget(‘zii.widgets.grid.CGridView’, array(
'id'=>'consultant-grid',
'dataProvider' => $model->searchConsultantInfos(),
'ajaxUpdate' => 'child-grid',
'filter' => $model,
'columns' => array(
array(
'name' => 'LigneCommandeID',
'value' => 'CHtml::encode($data->LigneCommandeID)',
'htmlOptions'=>array('style'=>'text-align:center;'),
'headerHtmlOptions' => array('style' => 'width:80px'),
),
array(
'name'=>'NomBenef_search',
'htmlOptions'=>array('style'=>'text-align:left;'),
'headerHtmlOptions' => array('style' => 'width:100px'),
'value' => '$data->refBeneficiaire->NomBenef',
),
array(
'name'=>'PrenomBenef_search',
'htmlOptions'=>array('style'=>'text-align:left;'),
'headerHtmlOptions' => array('style' => 'width:100px'),
'value' => '$data->refBeneficiaire->PrenomBenef',
),
array(
'name' => 'DateEntree',
'header' => 'Date Entrée',
'htmlOptions'=>array('style'=>'text-align:center;'),
'headerHtmlOptions' => array('style' => 'width:80px'),
'value' => 'CHtml::encode($data->DateEntree)'
),
array(
'name' => 'DateSortie',
'header' => 'Date Sortie',
'htmlOptions'=>array('style'=>'text-align:center;'),
'headerHtmlOptions' => array('style' => 'width:80px'),
'value' => 'CHtml::encode($data->DateSortie)'
),
array(
'name'=>'FullNumCom_search',
'htmlOptions'=>array('style'=>'text-align:center;'),
'headerHtmlOptions' => array('style' => 'width:70px'),
'value' => 'CHtml::encode($data->refCommande->FullNumCom)',
),
array(
'name' => 'RefPrestationID',
'htmlOptions'=>array('style'=>'text-align:center;'),
'headerHtmlOptions' => array('style' => 'width:80px'),
'value' => 'CHtml::encode($data->refPrestation->CodePresta)'
),
)
));
?>
AND in Model Page
public function searchConsultantInfos()
{
$criteria = new CDbCriteria;
if(isset($_GET['id']) && isset($_GET['id_presta']) ){
$criteria->condition = 'RefConsultantID = :ConsultantId AND RefPrestationID = :PrestationID';
$criteria->params = array (
':ConsultantId' => $_GET['id'],
':PrestationID' => $_GET['id_presta']
);
$criteria->compare('RefConsultantID', $_GET['id'], true);
$criteria->compare('RefPrestationID', $_GET['id_presta'], true);
}
if( isset($_GET['id_presta']) && ( $_GET['id_presta'] == '0' || $_GET['id_presta'] =='' ) ){
$criteria->condition = 'RefConsultantID = :ConsultantId';
$criteria->params = array (
':ConsultantId' => $_GET['id']
);
$criteria->compare('RefConsultantID', $_GET['id'], true);
}
$criteria->with=array('refBeneficiaire', 'refCommande');
$criteria->together = true;
$criteria->compare('LigneCommandeID', $this->LigneCommandeID, true);
$criteria->compare('refBeneficiaire.NomBenef', $this->NomBenef_search);
$criteria->compare('refBeneficiaire.PrenomBenef', $this->PrenomBenef_search);
$criteria->compare('DateEntree',$this->convertDatetoEn($this->DateEntree) );
$criteria->compare('DateSortie',$this->convertDatetoEn($this->DateSortie) );
$criteria->compare( 'refCommande.FullNumCom', $this->FullNumCom_search );
$criteria->compare('DateSortie', ' > '.date("Y-m-d") );
$criteria->group = 'DateEntree, DateSortie';
$sort = new CSort();
$sort->attributes = array(
'LigneCommandeID'=>array(
'asc'=>'LigneCommandeID',
'desc'=>'LigneCommandeID desc',
),
'NomBenef_search'=>array(
'asc'=>'refBeneficiaire.NomBenef',
'desc'=>'refBeneficiaire.NomBenef desc',
),
'PrenomBenef_search'=>array(
'asc'=>'refBeneficiaire.PrenomBenef',
'desc'=>'refBeneficiaire.PrenomBenef desc',
),
'FullNumCom_search'=>array(
'asc'=>'refCommande.FullNumCom',
'desc'=>'refCommande.FullNumCom desc',
),
'DateEntree'=>array(
'asc'=>'DateEntree',
'desc'=>'DateEntree desc',
'default'=>'desc',
),
'DateSortie'=>array(
'asc'=>'DateSortie',
'desc'=>'DateSortie desc',
'default'=>'desc',
),
);
return new CActiveDataProvider(get_class($this), array(
'pagination'=>array(
'pageSize'=>10
),
'criteria'=>$criteria,
'sort'=>$sort,
));
}