Yii Framework Forum: Mise À Jour D'un Cgridview Avec Une Liste Déroulante - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Mise À Jour D'un Cgridview Avec Une Liste Déroulante Rate Topic: -----

#1 User is offline   Sebastien 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 12
  • Joined: 07-February 12
  • Location:Brussels

Posted 12 September 2012 - 09:20 AM

Bonjour à tous,

J'utilise un CGridView pour afficher une liste de notes. Ces notes appartiennent à des catégories qui sont filtrées au moyen d'une liste déroulante. La première image attachée (before.png) donne un aperçu du résultat.

Comme l'affichage de la catégorie n'est pas pertinente, je désire obtenir un résultat comme illustré par la deuxième image (after.png).

Pour cela, voici le code de ma vue:

<h1><?php echo CHtml::encode(Yii::t('app','Notes')); ?></h1>

<div>
  <?php echo CHtml::label(CHtml::encode(Yii::t('app','Category:')),'Note_id_category'); ?>
  <?php echo CHtml::dropDownList('Note_id_category',Helper::lastCategory(),Category::byUser()); ?>
</div>

<?php $this->widget('zii.widgets.grid.CGridView', array(
  'id'=>'note-grid',
  'dataProvider'=>$model->search(),
  'updateSelector' => '{page}, {sort}, #Note_id_category',
  'columns'=>array(
    array(
      'name'=>'title',
      'type'=>'raw',
      'value'=>'CHtml::link(CHtml::encode($data->title), Yii::app()->urlManager->createUrl("/note")."/".$data->id)',
    ),
    array(
      'name'=>'date_creation',
      'value'=>'Helper::formatDate($data->date_creation)',
    ),
    array(
      'name'=>'date_modification',
      'value'=>'Helper::formatDate($data->date_modification)',
    ),
  ),
)); ?>


Je voudrais savoir comment faire pour que ma CGridView soit mise à jour sur base de la valeur de la liste déroulante.

Merci d'avance et à bientôt.

Attached File(s)


----------
Sébastien Adam
http://www.sebastienadam.be/
0

#2 User is offline   Sebastien 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 12
  • Joined: 07-February 12
  • Location:Brussels

Posted 13 September 2012 - 10:31 AM

Voici la solution proposée sur le forum en anglais.

<?php
Yii::app()->clientScript->registerScript('search', "
  $(document).on('change', '#Note_id_category', function() {
    $.fn.yiiGridView.update('note-grid', {
      data: $('#Note_id_category').serialize()
    });
    return false;
  });
",CClientScript::POS_HEAD);
?>

<div>
  <?php echo CHtml::label('Catégorie&nbsp;:','Note_id_category'); ?>
  <?php echo CHtml::dropDownList('Note[id_category]',Helper::lastCategory(),Category::byUser(),array('id'=>'Note_id_category')); ?>
</div>

<?php $this->widget('zii.widgets.grid.CGridView', array(
  'id'=>'note-grid',
  'dataProvider'=>$model->search(),
  'columns'=>array(
    array(
      'name'=>'title',
      'type'=>'raw',
      'value'=>'CHtml::link(CHtml::encode($data->title), Yii::app()->urlManager->createUrl("/note")."/".$data->id)',
    ),
    array(
      'name'=>'date_creation',
      'value'=>'Helper::formatDate($data->date_creation)',
    ),
    array(
      'name'=>'date_modification',
      'value'=>'Helper::formatDate($data->date_modification)',
    ),
  ),
)); ?>

----------
Sébastien Adam
http://www.sebastienadam.be/
0

#3 User is offline   bennouna 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 1,165
  • Joined: 05-January 12
  • Location:Morocco

Posted 13 September 2012 - 11:01 AM

Alors que donne la solution proposée ?
0

#4 User is offline   Sebastien 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 12
  • Joined: 07-February 12
  • Location:Brussels

Posted 14 September 2012 - 04:29 AM

View Postbennouna, on 13 September 2012 - 11:01 AM, said:

Alors que donne la solution proposée ?


Ca marche au poil, merci :-)
----------
Sébastien Adam
http://www.sebastienadam.be/
0

#5 User is offline   bennouna 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 1,165
  • Joined: 05-January 12
  • Location:Morocco

Posted 14 September 2012 - 04:53 AM

Ah ok je pensais que ça ne donnait rien.

En tout cas je note l'utilisation de serialize() sur un input, je pensais que c'était réservé aux form !
1

#6 User is offline   Sebastien 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 12
  • Joined: 07-February 12
  • Location:Brussels

Posted 14 September 2012 - 05:10 AM

View Postbennouna, on 14 September 2012 - 04:53 AM, said:

En tout cas je note l'utilisation de serialize() sur un input, je pensais que c'était réservé aux form !


Normalement, oui, serialize() s'utilise pour les form. Mais il est également possible de l'utiliser sur des input, textarea et select (cfr la doc: http://api.jquery.com/serialize/)
----------
Sébastien Adam
http://www.sebastienadam.be/
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users