Ho creato una pagina che tramite form mi permette di fare una ricerca tramite dataProvider(che è quella che crea il modulo gii…per interderci), ora vorrei creare dei link che richiamino un azione che esegue una query parametrica; ad esempio vorrei filtrare la tabella attività, per categoria; quindi a me servirebbe un link per ciascuna categoria: link1 = abbigliamento, link2 = sportiva ecc…; dovrei creare un azione per le categorie?e nella view inserire i link cosi echo CHtml::link(‘Sportiva’,array(‘Attivita/categoria’)); //link che richiama l’azione delle categorie?, per aggiornare i dati che ho ottenuto in precedenza con l’azione search…come procedo?..devo creare una nuova view Categoria?..o possono essere aggiornati sulla stessa?
non puoi farlo direttamente nella form?
Nella form la ricerca è libera, i link avrebbero un parametro fisso, ad esempio clicco sul link abbigliamento… e i dati filtrati saranno solo quelli che hanno come valore abbigliamento…nel campo categoria
basta mettere un dropdown nella form no? altrimenti devi fare un
linksubmit:
<?php echo CHtml::link('Link Parametrizzato', '#', array(
'submit'=>array('controller/action', 'id'=>$model->id),
'params'=>array('stato'=>1)
)); ?>
No nel form no!, il layout è diviso in due colonne, nel layout di ricerca(il form)…avrò i campi di ricerca: nome attivita,marca e sotto i risultati della ricerca(widget), nella colonna di sinistra avrò sempre i risultati di ricerca…ch sono uguali a quelli presenti nel layout di destra!, solo che è un mio widget(una cartina con i maker)…,i link li metto sopra tutto… capito?
no non ho capito, cmq te l’ho scritto come fare.
<?php echo CHtml::link('Link Parametrizzato', '#', array(
'submit'=>array('controller/action', 'id'=>$model->id),
'params'=>array('stato'=>1)
)); ?>
<div id= top_categoria>Link parametrici</div>
<div id=left>risultati della ricerca in un widget personalizzato</div>
<div id=right>Form di ricerca</div>
Non capisco come possono aggiornarsi i dati con quello che mi hai detto, scusami
<div id="mappa">
<div class="demo1"
<?php $this->widget('zii.widgets.CMapView', array(
'dataProvider'=>$model->search(),
'itemView'=>'_view',
)); ?>
</div>
</div>
<div id="cerca">
<?php $this->renderPartial('_search',array(
'model'=>$model,
)); ?>
<!-- Griglia risultati-->
<?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$model->search(),
'itemView'=>'_view2',
)); ?>
</div>
Il primo widgetha come dataprovider model->search
quindi fa riferimento a questa funzione
il secondo widget idem!;
se io inserisco dei link al di fuori della form!, su in alto a inizio pagina come menu ad esempio:
<div id=menu>
<?php echo CHtml::link('Sportiva', '#', array(
'submit'=>array('Attivita/Categoria', 'id'=>$model->id),
'params'=>array('categoria'=>sportiva)
)); ?>
</div>
in questo caso farò riferimento a questa funzione che deve filtrarmi il campo categoria
public function getCategoria(){
$criteria = new CDbCriteria();
$criteria->compare('categoria','sportiva);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,));
}