Yii Framework Forum: Recharger Un Widget "maison" - Yii Framework Forum

Jump to content

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

Recharger Un Widget "maison" Rate Topic: -----

#1 User is offline   CrazyCat 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 41
  • Joined: 30-May 13
  • Location:Paris, France

Posted 08 July 2013 - 06:25 AM

Bonjour,

J'ai un léger souci avec un widget que je suis en train de faire.

Actuellement, j'ai une page qui contient un moteur de recherche, un CGridView et une image générée à la volée par mon widget.

Le moteur de recherche rafraichit en ajax le CGridView, jusque là tout est bon. Par contre, je n'arrive pas à voir comment modifier mon widget pour qu'il puisse aussi être rafraichi.

Dans la vue principale, j'ai:
<?php
Yii::app()->clientScript->registerScript('search', "
	$('.search-button').click(function(){
		$('.search-form').toggle();
		return false;
	});
	$('.search-form form').submit(function(){
		$('#vol-transfert-grid').yiiGridView('update', {
		data: $(this).serialize()
	});
	return false;
});
");
?>
<!-- search form  -->
<div class="search-form" style="display: block; float: left;">
	<?php $this->renderPartial('_searchvolume',array(
			'model'=>$model,
)); ?>
</div>
<div class="clear"></div>
<?php echo CHtml::link('Recherche on/off','#',array('class'=>'search-button')); ?>
<!-- search-form -->
<?php $this->widget('zii.widgets.grid.CGridView', array(
	'id'=>'vol-transfert-grid',
	'dataProvider'=>$model->search(),
	//'filter'=>$model,
	'columns'=>array(
		'DateModif',
		'volok',
		'volko',
		array(
			'name' => 'weight',
			'value' => 'StringUtilities::humanReadable($data->weight)',
		),
	),
)); ?>

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


la vue _chart.php contient uniquement l'appel au widget (CPchartWidget) , qui n'a en fait que 2 fonctions: init() et run() (qui fait un echo du code html permettant d'afficher l'image générée).

Donc, je dois ajouter l'équivalent de
$('#vol-transfert-grid').yiiGridView('update', {
data: $(this).serialize()
});

pour mon widget, mais je ne vois pas trop comment.
Est-ce que je suis obligé d'ajouter une action dans mon contrôleur, ou bien y'a t'il un moyen de recharger le widget en lui passant le modèle mis à jour (donc avec les nouveaux paramètres de recherche) ?

Merci d'avance.
0

#2 User is offline   Co-k-ine 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 98
  • Joined: 29-March 10

Posted 16 July 2013 - 08:28 AM

As-tu essayer d'ajouter un évènement sur clique ?

Lorsque tu saisi le formulaire de recherche il recharge la div contenant ton _chart.php via une action du controlleur
0

#3 User is offline   grandoom 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 34
  • Joined: 11-July 12

Posted 16 July 2013 - 09:52 AM

en complément de CO-k-ine
...je crois que tu n'envoies pas le résultat de ta recherche dans le _chart.php mais seulement le $model...

essaye le code suivant

<?php
$this->renderPartial('_chart',array(
'id' => 'chart',
'model'=>$model->search(),
));

j'espère avoir vu juste... :rolleyes:
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