J'ai un CListView
qui utilise ajaxLink()
dans le fichier _view
.Yii ajaxLink() ne fonctionne qu'une seule fois
Voir (index.php)
<?php
Yii::app()->clientScript->registerScript('ajaxUpdate',
"
//javascript function to update the listview using ajax
function updateItemList(){
$.fn.yiiListView.update('itemList');
return false;
}
", CClientScript::POS_READY);
?>
<?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view',
'id'=>'itemList',
)); ?>
partielle
(de _view.php)
<?php echo CHtml::ajaxLink('Delete',array('libdbitems/delete','id'=>$data->id),
array('type'=>'POST','success'=>'function(){updateItemList()}'),
array('confirm'=>'Are you sure you want to delete this item?',
'id'=>'delete-'.$data->id)); ?>
Le contrôleur est fondamentalement juste la valeur par défaut actionIndex()
qui est généré avec Gii.
Voici le problème: lorsque je clique sur mon lien Delete
la première fois après un chargement de page, il se comporte comme prévu. Après cela, en cliquant sur Delete
ne fait rien. (Il actualise le ListView, mais aucune modification n'est faite.)
Je suis assez sûr que le problème réside dans la façon dont Yii lie les événements click()
à mes liens en javascript, mais je ne sais pas comment résoudre le problème. J'ai essayé d'utiliser l'option live=true
comme d'autres l'ont suggéré, mais cela ne fait rien.
Est-ce que quelqu'un sait comment résoudre ce problème afin que mon lien Supprimer fonctionne plusieurs fois sans avoir à recharger la page?
Bonne suggestion, et il aurait travaillé pour écrire un gestionnaire personnalisé. Heureusement, j'ai corrigé une erreur stupide dans mon code. Vous avez voté de toute façon. – penco