Ho creato con il modulo gii la CRUD, ora stavo andando a modificare la ricerca…,ma i risultati non li voglio in un widget…, il controller AttivitaController
public function actionAdmin()
{
$model=new Attivita('search');
$model->unsetAttributes(); // clear any default values
if(isset($_GET['Attivita']))
$model->attributes=$_GET['Attivita'];
$this->render('admin',array(
'model'=>$model,
));
}
il modello Attivita:
public function search()
{
// @todo Please modify the following code to remove attributes that should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id,true);
$criteria->compare('eventi_id',$this->eventi_id,true);
$criteria->compare('nome',$this->nome,true);
$criteria->compare('descrizione',$this->descrizione,true);
$criteria->compare('indirizzo',$this->indirizzo,true);
$criteria->compare('titolo',$this->titolo,true);
$criteria->compare('coordinate',$this->coordinate,true);
$criteria->compare('image',$this->image,true);
$criteria->compare('categoria',$this->categoria,true);
$criteria->compare('username',$this->username,true);
$criteria->compare('psw',$this->psw,true);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
poi la view _search
<?php
/* @var $this AttivitaController */
/* @var $model Attivita */
/* @var $form CActiveForm */
?>
<div class="wide form">
<?php $form=$this->beginWidget('CActiveForm', array(
'action'=>Yii::app()->createUrl($this->route),
'method'=>'get',
)); ?>
<div class="row">
<?php echo $form->label($model,'nome'); ?>
<?php echo $form->textField($model,'nome',array('size'=>60,'maxlength'=>255)); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton('Search'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- search-form -->
infine la view admin…che nelle operazioni crud preimpostate usa il widget
<?php
/* @var $this AttivitaController */
/* @var $model Attivita */
$this->breadcrumbs=array(
'Attivitas'=>array('index'),
'Manage',
);
$this->menu=array(
array('label'=>'List Attivita', 'url'=>array('index')),
array('label'=>'Create Attivita', 'url'=>array('create')),
);
Yii::app()->clientScript->registerScript('search', "
$('.search-button').click(function(){
$('.search-form').toggle();
return false;
});
$('.search-form form').submit(function(){
$('#attivita-grid').yiiGridView('update', {
data: $(this).serialize()
});
return false;
});
");
?>
<h1>Manage Attivitas</h1>
<p>
You may optionally enter a comparison operator (<b><</b>, <b><=</b>, <b>></b>, <b>>=</b>, <b><></b>
or <b>=</b>) at the beginning of each of your search values to specify how the comparison should be done.
</p>
<?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'=>'attivita-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'id',
'eventi_id',
'nome',
'descrizione',
'indirizzo',
'titolo',
/*
'coordinate',
'image',
'categoria',
'username',
'psw',
*/
array(
'class'=>'CButtonColumn',
),
),
)); */?>
<?php
/* faccio ciclare..,ma quando uso la form per cambiare ricerca..mi rimangono comunque tutti i risultati */
$dataProvider = Attivita::model()->search();
$dataArray = $dataProvider->getData();
foreach ($dataArray as $dati){
echo CHtml::encode($dati->nome)."<br>";
}
?>
faccio ciclare…,ma quando uso la form per cambiare ricerca…mi rimangono comunque tutti i risultati, non riesco a capire…, se devo creare un’altro widget o cosa fare… help