2013-08-13 4 views
1

Je dois mettre à jour listview après avoir sélectionné la liste déroulante. Je déroulant dans le fichier index.phpComment mettre à jour listview par une liste déroulante?

<?php echo CHtml::DropDownList('myDropDown1','',array(),array(

     'onchange'=>"$.fn.yiiListView.update(
      'ajaxListView', {url: '".Yii::app()->createUrl('RepotCardMain/getclassreportcards')."?myDropDown1='+$('#myDropDown1 option:selected').val()})", 
     'prompt'=>' select a Class','style'=>'width:300px;' 
     )); 

listview est

<?php $this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$dataProvider, 
    'itemView'=>'_view', 
     'id'=>'ajaxListView', 
)); ?> 

Dans mon RepotCardMainController.php j'ai méthode getclassreportcards

if(isset($_POST['myDropDown1'])) 
    { 

     $criteria=new CDbCriteria; 
     $criteria->condition = 't.class_id=:class_id'; 
     $criteria->params = array(':class_id'=>$_POST['myDropDown1']); 
     $dataProvider=new  CActiveDataProvider('RepotCardMain',array('criteria'=>$criteria,)); 

     $this->render('repotCardMain',array(
       'dataProvider'=>$dataProvider, 
      )); 
    } 

ce n'est pas mise à jour ListView et Je ne pouvais pas erreur. J'ai besoin d'une aide rapide pour cela. merci

Répondre

1

Vous devriez avoir à utiliser $_GET au lieu de $_POST depuis que vous avez passé le param myDropDown1 comme querystring

Modifié: Puisque vous fournir moins d'informations qui permettent que je regarde à l'intérieur, je vais présenter la façon dont il fonctionne pour vous enter image description here

+0

mais pas de changer le même problème. – nu123

+0

pouvez-vous me dire si c'est correct. je débogue le programmeur et debuger n'est pas allé à cette url 'onchange' => "$. fn.yiiListView.update ( 'ajaxListView', {url: '" .Yii :: app() -> createUrl (' RepotCardMain /getclassreportcards')."?myDropDown1='+$('#myDropDown1 option: selected '). val()}), – nu123

+0

Avez-vous essayé de consoler.log la réponse à quelle requête ajax est retournée? Était-ce le succès ou l'échec? Ou vous avez changé la valeur sélectionnée dans le menu déroulant, puis l'événement n'a même pas été déclenché? Qu'est-ce qui est en vue repotCardMain? –

Questions connexes