Yii Framework Forum: Template Column2.php: Search Form - Yii Framework Forum

Jump to content

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

Template Column2.php: Search Form Rate Topic: -----

#1 User is offline   abaoaqu 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 24
  • Joined: 12-March 13

Posted 04 April 2013 - 01:55 PM

Ciao, dopo aver letto di tutto non sono ancora riuscito a capire come inviare alla left column del template colum2 una search form. Per fare un esempio partendo dalla pagina admin del sito creata da gii, io ho la advanced search sopra la gridview al centro della pagina. Se volessi spostare la form di ricerca nella colonna a sinistra della gridview nel template colunm2 e toglierla da sopra, come fare?

Grazie
0

#2 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 04 April 2013 - 05:38 PM

Ok, c'è un po' di disordine nell'uso dell'MVC di Yii. Quello che devi fare tu, è solo renderizzare il template giusto nel tuo controller. Sarà Yii che chiamerà da solo column2 o column1 e poi layout.
0

#3 User is offline   abaoaqu 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 24
  • Joined: 12-March 13

Posted 05 April 2013 - 02:05 AM

Forse mi sono spiegato male. Nel controller c'è già il layout template column2 impostato. Solo che nella colonna di sinistra ci mette il widget del menu mentre in quella centrale renderizza il resto (search form e gridview), il tutto passato dentro la variabile $content. Quello che voglio fare e mettere la search form nella colonnadi sinistra e toglierla dal centro..

Grazie
0

#4 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 06 April 2013 - 01:24 AM

Spostali =). Prendi il colum2, e spostali.
0

#5 User is offline   abaoaqu 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 24
  • Joined: 12-March 13

Posted 06 April 2013 - 06:41 PM

Scusami ma forse sono io che non ci arrivo. Mi spieghi cosa intendi dire? Come faccio a spostare la search form della ricerca avanzata a sinistra se insieme alla gridview fa parte di un blocco unico? Nella colunm2 non é neppure dichiarato il model...
0

#6 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 07 April 2013 - 07:20 PM

Puoi postare il codice?
0

#7 User is offline   abaoaqu 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 24
  • Joined: 12-March 13

Posted 08 April 2013 - 04:42 AM

View Postsensorario, on 07 April 2013 - 07:20 PM, said:

Puoi postare il codice?


Allora nel controller:

...
        public $layout='//layouts/column2';
...
//qui richiamo la view admin
	public function actionAdmin()
	{
		$model=new Annunci('search');
		$model->unsetAttributes();  // clear any default values
		if(isset($_GET['Annunci']))
			$model->attributes=$_GET['Annunci'];

		$this->render('admin',array(
			'model'=>$model,
		));
	}



Nella view admin

<?php
/* @var $this AnnunciController */
/* @var $model Annunci */

$this->breadcrumbs=array(
	'Annunci'=>array('index'),
	'Manage',
);

$this->menu=array(
	array('label'=>'List Annunci', 'url'=>array('index')),
	array('label'=>'Create Annunci', 'url'=>array('create')),
);

Yii::app()->clientScript->registerScript('search', "
$('.search-button').click(function(){
	$('.search-form').toggle();
	return false;
});
$('.search-form form').submit(function(){
	$('#annunci-grid').yiiGridView('update', {
		data: $(this).serialize()
	});
	return false;
});
");
?>

<h1>Manage Annunci</h1>

<p>
You may optionally enter a comparison operator (<b>&lt;</b>, <b>&lt;=</b>, <b>&gt;</b>, <b>&gt;=</b>, <b>&lt;&gt;</b>
or <b>=</b>) at the beginning of each of your search values to specify how the comparison should be done.
</p>

//qui appare la form della search

<?php echo CHtml::link('Advanced Search','#',array('class'=>'search-button')); ?>
<div class="search-form" style="display:none">
<?php $this->renderPartial('_search',array(
	'model'=>$model,
)); ?>
</div><!-- search-form -->

<?php $this->widget('zii.widgets.grid.CGridView', array(
	'id'=>'annunci-grid',
	'dataProvider'=>$model->search(),
	'filter'=>$model,
	'columns'=>array(
		'id_ann',
		'titolo',
		'descrizione',
		array(  
		'name' => 'destinazione',  
		'filter' => CHtml::activeTextField($model, 'id_destinazione'),  
		'value' => '$data->destinazione->destinazione',  
		),
		array(  
		'name' => 'zona',  
		'filter' => CHtml::activeTextField($model, 'id_zona'),  
		'value' => '$data->zona->nome_zona',  
		),
		array(  
		'name' => 'tipolgia',  
		'filter' => CHtml::activeTextField($model, 'id_tipologia'),  
		'value' => '$data->tipologia->nome_tipologia',  
		),
		array(
			'class'=>'CButtonColumn',
		),
	),
)); ?>


...e questa è la column2.php

<?php /* @var $this Controller */ ?>
<?php $this->beginContent('//layouts/main'); ?>
<div class="span-4 last">
	<div id="sidebar">
	<?php
		$this->beginWidget('zii.widgets.CPortlet', array(
			'title'=>'Operations',
		));
		$this->widget('zii.widgets.CMenu', array(
			'items'=>$this->menu,
			'htmlOptions'=>array('class'=>'operations'),
		));
		$this->endWidget();
	?>
	</div><!-- sidebar -->
	<div id="search">
		// QUI VORREI APPARISSE LA SEARCH
	</div><!-- sidebar -->
</div>
<div class="span-19">
	<div id="content">
               <?php echo $content; ?>
	</div><!-- content -->
</div>
<?php $this->endContent(); ?>



spero sia tutto chiaro.

Grazie
0

#8 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 08 April 2013 - 05:24 AM

E' tutto chiaro: se vuoi che il search form compaia dove hai indicato, devi spostare il codice html e javascript dalla tua view alla view column2. Occhio che hai un $model che poi dovrai passare per tutte le view quindi dovrai mettere mano al componente protected/components/Controller.php.

Ma questo è quello che vuoi, non credo sia quello di cui tu hai bisogno.
0

#9 User is offline   abaoaqu 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 24
  • Joined: 12-March 13

Posted 09 April 2013 - 03:14 AM

View Postsensorario, on 08 April 2013 - 05:24 AM, said:

E' tutto chiaro: se vuoi che il search form compaia dove hai indicato, devi spostare il codice html e javascript dalla tua view alla view column2. Occhio che hai un $model che poi dovrai passare per tutte le view quindi dovrai mettere mano al componente protected/components/Controller.php.

Ma questo è quello che vuoi, non credo sia quello di cui tu hai bisogno.


Mah, io vorrei semplicemente spostare la form di ricerca a sinistra della gridview e toglierla da sopra...possibile che sia così complicato? Cortesemente, tu cosa faresti? Ho pensato di non utilizzare il template "column2" e quindi utilizzare il "column1" o direttamente il "main" e da li impostare la pagina come preferisco con una tabella...

Grazie
0

#10 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 09 April 2013 - 03:27 AM

Ma perché non la sposti?
0

#11 User is offline   abaoaqu 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 24
  • Joined: 12-March 13

Posted 09 April 2013 - 04:24 AM

View Postsensorario, on 09 April 2013 - 03:27 AM, said:

Ma perché non la sposti?


Mi da il seguente errore

"Undefined variable: model "

             });
24             $('.search-form form').submit(function(){
25                 $('#annunci-grid').yiiGridView('update', {
26                     data: $(this).serialize()
27                 });
28                 return false;
29             });
30             ");
31         ?>
32         <?php echo CHtml::link('Advanced Search','#',array('class'=>'search-button')); ?>
33         <div class="search-form" style="display:none">
34         <?php $this->renderPartial('_search',array(
35            'model'=>$model,
36         )); ?>
37         </div><!-- search-form -->
38     </div><!-- sidebar -->
39 </div>
40 <div class="span-19">
41     <div id="content">
42         <?php echo $content; ?>
43     </div><!-- content -->
44 </div>
45 <?php $this->endContent(); ?>


...ed aggiungo: però facendo così avrò sempre la search form per tutte le pagine del sito, o comunque tutte quelle che utilizzano column2 come template. Per il mio caso va bene, ma in realtà il contenuto di quella colonna sarebbe perfetto se fosse dinamico. :)

Grazie
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