Quantcast
Channel: Yii Framework Forum
Viewing all articles
Browse latest Browse all 18717

Cgridview Ajax Update/filter Fail

$
0
0
Hi everybody!
I am really getting stuck in a problem I can't understand.

the problem
Given a certain Model ('Struttura': ['codice_struttura', 'codice_regione', ... ])
I am trying to build a custom search page with a jvectormap, some dropdown and a CGridView.
Clicking on the map, users select a region.
A js function will:
  • update one dropdown with the list of cities
  • filter the CGridView by 'codice_regione' in order to find the 'Struttura' in that region
  • ...

Currently I can perform an ajax update of the dropdown but I cannot update the CGridView.

the code

search.php
        [..some other stuff..]
	<div id="mapData">

		<?php $this->widget('bootstrap.widgets.TbGridView', array(
				'type'=>'striped bordered condensed',
				'id'=>'strutture-grid',
				'dataProvider'=>$model->search(),
				'filter'=>$model,
)); ?>
	</div>

        [..some other stuff..]



StrutturaController.php


        //[..some other stuff..]
	public function actionSearch()
	{
		$uri = Yii::app()->baseUrl . '/js/jquery-jvectormap-1.1.1.css';
		Yii::app()->clientScript->registerCssFile($uri, 'screen, projection');
		
		$model=new Struttura('search');
		$model->unsetAttributes();  // clear any default values
		if(isset($_GET['Struttura'])){
			$model->attributes=$_GET['Struttura'];
		
		}
		$this->render('search', array('model'=>$model));
	}
        //[..some other stuff..]


_recuperaDatiComune.js
        [..some other stuff..]

	if(region_id !== false) {
		$.fn.yiiGridView.update("strutture-grid", {data: {codice_regione:region_id}});
	} 

        [..some other stuff..]



Firebug console logs:

GET /.../index.php?r=struttura%2Fsearch&codice_regione=16&ajax=strutture-grid
GET /.../index.php?r=struttura/jSbrowse&id=16


When I manually filter the CGridView I get the same GET request
GET /.../index.php?r=struttura%2Fsearch&codice_regione=16&ajax=strutture-grid



obviously in the Model:

	public function search()
	{
		$criteria=new CDbCriteria;

		$criteria->compare('codice_regione',$this->codice_regione,true);

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

so, why the CGridView doesn't display filtered data?

Thanks in advance for your help and for all the topics I snooped so far :)

Viewing all articles
Browse latest Browse all 18717

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>