Gridview Durch Dropdown Change Updaten

Hallo Zusammen

Ziel:

Das Ziel ist es, dass das GridView nach dem ändern des Dropdown Feldes, nach dessen neuen Wert gefiltert wird, ohne dabei die Seite (Formular) neu zu laden.

[size="2"]Resultat des aktuellen Code:[/size]

Beim ändern des Dropdown wird immer mit dem vorherig ausgewählten Wert aktualisiert.

Weis jemand was ich da falsch mache?

jQuery Grid Updaten





<?php 

Yii::app()->clientScript->registerScript('yiiGridView.update', "


	$('.fk_branche').change(function(){

		$.fn.yiiGridView.update('my-grid');

	});

"); 

?>



Formular Dropdown





<?php $form = $this->beginWidget(

    'bootstrap.widgets.TbActiveForm',

    array(

	'id' => 'horizontalForm',

	'type' => 'horizontal',

	'enableAjaxValidation'=>true,

	)

); 

.....

<div class="row">

		<?php echo $form->labelEx($model,'fk_branche'); ?>

		<?php echo $form->dropDownList($model, 'fk_branche', CHtml::listData(BrancheTable::model()->findAll(),'primary','bezeichnung'),array('class'=>'fk_branche')); ?>

		<?php echo $form->error($model,'fk_branche'); ?>

		</div><!-- row -->

...



GridView





 $this->widget('bootstrap.widgets.TbGridView', array(

        'id'=>'my-grid',

        'dataProvider'=>AnforderungVorlageTable::model()->Anforderung($model->fk_branche),

		'selectableRows' => 2,

		'htmlOptions' => array('style'=>'width:350px;'),

        'columns'=>array(

	

        array(

            'class'=>'CCheckBoxColumn',            

            ),

        array(

            'name'  => 'titel',

			'header'  => 'Anforderung',

            'htmlOptions' => array('style'=>'width:30px;'),

			),

        ),

	)

); 



so gehts tip top

view dropdown und div (ausgewählter Wert wird mit POST an action übermittelt)


<?php echo $form->dropDownList($model, 'fk_branche', CHtml::listData(BrancheTable::model()->findAll(),'primary','bezeichnung'),array(

		'prompt'=>'Alle',


		'ajax' => array(

			'type'=>'POST', 

			'url'=>CController::createUrl('ProjektTable/GetAnforderung'),

			'update'=>'#my-grid', 

			'data'=>array('fk_branche'=>'js:this.value'),

			)		)); ?>


....


<div id="my-grid"></div>




Action in Controller (aufgerufen durch ajax)


public function actionGetAnforderung() {

	

	$data= $_POST['fk_branche'];

		

		$this->renderPartial('_grid', array(

			'data' => $data, 

        ));

	

_grid für renderpartial (DataProvider = POST von ajax)


<?php

$this->widget('zii.widgets.grid.CGridView', array(

		'id'=>'my-grid', 

		'dataProvider'=>AnforderungVorlageTable::model()->Anforderung($data),

		'selectableRows' => 2,	

		'htmlOptions' => array('style'=>'width:350px;'),

		'columns'=>array(

		

		array(

			'class'=>'CCheckBoxColumn',  

			'htmlOptions' => array('style'=>'width:15px;'),							

			),

		array(

			'name'  => 'titel',

			'header'  => 'Anforderung',

			'htmlOptions' => array('style'=>'width:30px;'),

			),

		),

		)

); 

?>

dataprovider im model (fk_branche = POST von ajax, select von DropDown)




public function Anforderung($fk_branche) {

		$criteria = new CDbCriteria;

		$criteria->compare('fk_branche', $fk_branche);

		return new CActiveDataProvider($this, array(

			'criteria' => $criteria,

		));