Yii Framework Forum: CGridView in CJuiTabs ricerca non funzionante - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

CGridView in CJuiTabs ricerca non funzionante Rate Topic: -----

#1 User is offline   HuGoLiNo 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 20-June 11

Posted 15 July 2011 - 05:14 AM

Salve di nuovo...sono sempre un novello di Yii (lo sto 'studiando' da meno di un mese) e sto preparando un prototipo per una applicazione nella quale ho la necessità di avere una form di tipo master-detail.

In realtà (in maniera forse un po artigianale) ho risolto gran parte della problematica, cercando qua e la il da farsi e sono riuscito ad ottenere una view dove ci sono le informazioni del model padre e sotto, nei tab, le gridview dei figli connessi.

Funziona tutto bene per aggiunta, modifica ed elimina...ma ho notato che solo la ricerca nelle gridview all'intero dei tab non ne vuole sapere di funzionare.

Arrivo a credere che sia un problema di riferimento al componente o cmq di dati passati...ma non riesco a capire dove e come sbaglio, anche perchè, ripeto, il resto funziona correttamente.

Di seguito un po di codice per capire il "macello" che sto combinando:

index.php (padre)
<?php
$this->breadcrumbs=array(
	'Siti'=>array('admin'),
	'Gestione',
	$model->id_sito,
);

$this->menu=array(
	/*array('label'=>'List Sito', 'url'=>array('index')),*/
	/*array('label'=>'Crea Sito', 'url'=>array('create')),*/
);
?>

<h1>Gestisci Sito #<?php echo $model->id_sito; ?></h1>

<?php 
$this->widget('zii.widgets.CDetailView', array(
    'data'=>$model,
    'attributes'=>array(
        'num_catalogo_generale',             
        'suffisso_num_catalogo_generale',    
        'protocollo',						 
    ),
));

// create tabs
$this->widget('zii.widgets.jui.CJuiTabs', array(
    'tabs'=>array(
       'Scavi' =>$this->renderPartial("../sitoCampagnaScavo/_detail", array('model' => SitoCampagnaScavo::model()), $this),
	   'US' =>$this->renderPartial("../us/_detail", array('model' => Us::model()), $this),
    ),
    // additional javascript options for the tabs plugin
    'options'=>array(
        'collapsible'=>true,
    ),
));
?>


_detail.php (di uno dei figli..sono tutte uguali come concetto)
<?php 
Yii::app()->clientScript->registerScript('search', "
$('.search-buttonSCS').click(function(){
	$('.search-formSCS').toggle();
	return false;
});
$('.search-formSCS form').submit(function(){
	$.fn.yiiGridView.update('sito-campagna-scavo-grid', {
		data: $(this).serialize()
	});
	return false;
});
");

echo CHtml::link('Ricerca Avanzata','#',array('class'=>'search-buttonSCS')); 
?>

<div class="search-formSCS" style="display:none">
<?php $this->renderPartial('../sitoCampagnaScavo/_search',array(
	'model'=>$model,
)); ?>
</div><!-- search-form -->

<?php 
$this->widget('zii.widgets.grid.CGridView', 
	array(
		'id'=>'sito-campagna-scavo-grid',
		'dataProvider'=>$model->search(),
		'filter'=>$model,
		'columns'=>array(
			'id_campagna_scavo',
			'id_sito',
			'nome_campagna',
			'anno',
			'data_inizio',
			'data_fine',
			/*
			'note',
			'autore_scheda',
			'data_creazione',
			'autore_modifica',
			'data_modifica',
			*/
			array(
				'class'=>'CButtonColumn',
				'template'=>'{view}{update}{delete}',
				'buttons'=>array
				(
					'view' => array
					(
						'label'=>'Visualizza',
						'imageUrl'=>Yii::app()->request->baseUrl.'/images/view.png',
						'url'=>'Yii::app()->createUrl("sitoCampagnaScavo/view", array("id"=>$data->id_campagna_scavo))',
					),
					'update' => array
					(
						'label'=>'Aggiorna',
						'imageUrl'=>Yii::app()->request->baseUrl.'/images/update.png',
						'url'=>'Yii::app()->createUrl("sitoCampagnaScavo/update", array("id"=>$data->id_campagna_scavo))',
					),
					'delete' => array
					(
						'label'=>'Elimina',
						'imageUrl'=>Yii::app()->request->baseUrl.'/images/delete.png',
						'url'=>'Yii::app()->createUrl("sitoCampagnaScavo/delete", array("id"=>$data->id_campagna_scavo))',
					),
				),
			),
		),
	)
); 
?>


Nei model e controller (creati con Gii) non ho modificato praticamente nulla..se richiamate esternamente alle Tab le pagine funzionano normalmente.

Ripeto, data la "fretta" di creare un prototipo ho studiato e applicato al volo quello che mi risultava utile allo scopo..quindi probabilmente mi sono perso dei concetti magari basilari per strada :)

Comunque..spero possiate aiutarmi!!

Grazie in anticipo a tutti voi!!
0

#2 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,232
  • Joined: 04-October 09
  • Location:Moscow

Posted 18 July 2011 - 01:25 AM

il fatto e' che passi un model nuovo alla cgridView:

'model' => Us::model()

E dovresti invece caricare il model con i dati che ti arrivano dall'utente:

$usModel= new Us();
if (isset($_GET['Us']))
    $usModel->attributes= $_GET['Us'];

0

#3 User is offline   HuGoLiNo 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 20-June 11

Posted 18 July 2011 - 04:28 AM

View Postzaccaria, on 18 July 2011 - 01:25 AM, said:

il fatto e' che passi un model nuovo alla cgridView:

'model' => Us::model()

E dovresti invece caricare il model con i dati che ti arrivano dall'utente:

$usModel= new Us();
if (isset($_GET['Us']))
    $usModel->attributes= $_GET['Us'];



Perdonami ma non credo di aver capito...

io passo il model alla CGridView dal link del Tab e questo è il model "ufficiale" con i dati che mi servono...i dati presenti nella griglia appaiono come mi servono poichè sono già filtrati a monte grazie all'id del padre (comportamento già presente nel model stesso con un DefaultScope())..e di conseguenza riesco anche ad aggiornare e cancellare correttamente...

l'esempio che mi hai proposto tu (ovvero l'impostazione di attributes) dove andrebbe fatta? riguarda la chiamata al search?

perdonami ma sono un po confuso ???

Grazie ancora!
0

#4 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,232
  • Joined: 04-October 09
  • Location:Moscow

Posted 18 July 2011 - 07:03 AM

Devi farlo nel controller.

Dai una occhiata al codice di una actionAdmin, li' imposta gli attributi del model usando i dati in $_GET, tu devi fare questo lavoro anche per us e sitoCampagnaScavo
0

#5 User is offline   HuGoLiNo 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 20-June 11

Posted 18 July 2011 - 09:20 AM

Ahh ecco...ora ho capito!!!
Grazie mille ho risolto..ora funziona anche il cerca!!
0

#6 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,232
  • Joined: 04-October 09
  • Location:Moscow

Posted 18 July 2011 - 09:42 AM

Urra!!

Cerca di copiare il piu' possibile dalle pagine generate da gii, tutta esperienza che ci guadagni
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users