Bonjour,
J'utilise le composant CGridView de Yii pour afficher des données résultat d'une recherche.
Mais mes données sont envoyé en POST à partir du formulaire. Mais quand je veux faire le tri (clic sur le nom d'une colonne), Yii envoies l'information sous forme GET, et comme dans mon controlleur je récupérais les données sous forme POST, le tri ne marche pas.
J'aimerai donc savoir comment préciser au composant CGridView d'envoyer l'information sur le tri en POST et non en GET. Mon formulaire de recherche est un peu complexe pour envoyer toutes les données en GET.
Merci d'avance pour vos aides.
dialloma
Page 1 of 1
CGridView tri colonne
#2
Posted 28 June 2012 - 09:30 AM
dialloma, on 27 June 2012 - 09:08 AM, said:
Bonjour,
J'utilise le composant CGridView de Yii pour afficher des données résultat d'une recherche.
Mais mes données sont envoyé en POST à partir du formulaire. Mais quand je veux faire le tri (clic sur le nom d'une colonne), Yii envoies l'information sous forme GET, et comme dans mon controlleur je récupérais les données sous forme POST, le tri ne marche pas.
J'aimerai donc savoir comment préciser au composant CGridView d'envoyer l'information sur le tri en POST et non en GET. Mon formulaire de recherche est un peu complexe pour envoyer toutes les données en GET.
Merci d'avance pour vos aides.
dialloma
J'utilise le composant CGridView de Yii pour afficher des données résultat d'une recherche.
Mais mes données sont envoyé en POST à partir du formulaire. Mais quand je veux faire le tri (clic sur le nom d'une colonne), Yii envoies l'information sous forme GET, et comme dans mon controlleur je récupérais les données sous forme POST, le tri ne marche pas.
J'aimerai donc savoir comment préciser au composant CGridView d'envoyer l'information sur le tri en POST et non en GET. Mon formulaire de recherche est un peu complexe pour envoyer toutes les données en GET.
Merci d'avance pour vos aides.
dialloma
Il serait bien que tu nous affiches ton code pour pouvoir mieux t'aider
#3
Posted 11 July 2012 - 04:36 AM
je pense que ceci pourrait t'aider...
1 - defini tes critères de recherche dans ton 'modèle'
exemple
surtout ne force pas un classement dans ton objet 'criteria' [$criteria->order = 'victory DESC';] car tu ne pourras plus trier les colonnes
2 - puis crée un fonction dans ton 'controleur' contenant tes critères complexes de recherche
exemple
dans la 'view' rien de bien spécial a mettre si ce n'est le widget CGridView...
1 - defini tes critères de recherche dans ton 'modèle'
exemple
Quote
public function search()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria=new CDbCriteria;
//$criteria->scopes='activeTeams';
$criteria->compare('name',$this->name,true);
$criteria->compare('leader',$this->leader,true);
//$criteria->order = 'victory DESC';
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination'=>array(
'pageSize'=>'5',
),
));
}
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria=new CDbCriteria;
//$criteria->scopes='activeTeams';
$criteria->compare('name',$this->name,true);
$criteria->compare('leader',$this->leader,true);
//$criteria->order = 'victory DESC';
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination'=>array(
'pageSize'=>'5',
),
));
}
surtout ne force pas un classement dans ton objet 'criteria' [$criteria->order = 'victory DESC';] car tu ne pourras plus trier les colonnes
2 - puis crée un fonction dans ton 'controleur' contenant tes critères complexes de recherche
exemple
Quote
public function actionIndex()
{
$model=new TblTeams('search');
$model->unsetAttributes(); // clear any default values
if(isset($_GET['TblTeams']))
$model->attributes=$_GET['TblTeams'];
$this->render('index',array(
'model'=>$model,
));
}
{
$model=new TblTeams('search');
$model->unsetAttributes(); // clear any default values
if(isset($_GET['TblTeams']))
$model->attributes=$_GET['TblTeams'];
$this->render('index',array(
'model'=>$model,
));
}
dans la 'view' rien de bien spécial a mettre si ce n'est le widget CGridView...
Share this topic:
Page 1 of 1

Help












