2014-06-13 3 views
0

나는 Yii와 초보자입니다.yii cgridview 업데이트 드롭 다운 목록에 따라

$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'beneficiary-grid', 
'dataProvider' => $model->searchForVoucherAssignment($select), 
'filter' => $model, 
'columns' => array(
      'id', 
    'registration_code', 
    'ar_name', 
      'en_name', 
      'family_member', 
      'main_income_source', 
      'combine_household', 
      array('class'=>'CCheckBoxColumn', 'value'=>'$data->id', 'selectableRows'=> '2', 'header' => 'check', 
      ), 
), 
)); 

매개 변수 $selectdropdownlist에서 그 값을 사용한다 : :

$data = CHtml::listData(Distribution::model()->findAll(array("condition"=>"status_id = 2")), 'id', 'code'); 
$select = key($data); 
echo CHtml::dropDownList(
    'distribution_id', 
    $select,   // selected item from the $data 
    $data,  
    array(
    ) 
); 

그래서 나는 CGridview가에 따라 업데이트하는 스크립트를 정의 나는 매개 변수 $select 소요 cutom의 dataProvider를 가진 CGridview이 드롭 다운리스트의 값

Yii::app()->clientScript->registerScript('sel_status', " 
     $('#selStatus').change(function() { 
      $.fn.yiiGridView.update('beneficiary-grid', { 
        data: $(this).serialize() 
      });    
      return false; 
     }); 
    "); 

내 모델 :

public function searchForVoucherAssignment ($distribution_id = 0) { 
      $criteria = new CDbCriteria; 
      if ($distribution_id != 0) { 
       $criteria->condition = "Custom Query...!!"; 
      } 
      $criteria->compare('id', $this->id); 

      //Custom Criteria 

      return new CActiveDataProvider($this, array(
       'criteria' => $criteria, 
       'pagination' => array(
            'pageSize' => 20, 
           ), 
      )); 
     } 

문제는 CGridview이 변경되지 않는 것입니다 경우 변경된 dropdownlist의 값 ...

+0

은 드롭 다운 변경시 트리거되는 아약스 요청입니까? – Manquer

+0

그래도 변경 사항이 나타나지 않습니다. – Hanihh

+0

은 ajax 응답의 올바른 데이터입니까? 당신이보기에 약간의 오류가있을 가능성이 높다면 올바른 데이터를 반환하지 않으면 HTML 페이지 (누락 된 태그, js 오류 등)가있을 수 있습니다. 모델/컨트롤러에 문제가 있습니다. – Manquer

답변

1

난 당신이 변경 이벤트에 대한 잘못된 이드 선택한 생각합니다. Id는

이어야합니다.
$('#distribution_id').change(function() {