Yii Framework Forum: Create a search - Yii Framework Forum

Jump to content

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

Create a search Rate Topic: -----

#1 User is offline   cosimfi74 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 8
  • Joined: 06-November 08

Posted 28 July 2009 - 04:55 AM

Ciao a tutti

Prima prova in italiano....

Volevo creare una search form con un campo TextField dove l'utente ha 2 opzioni:
1) inserire direttamente il nome di una città nel textfield e cercarla.
2) cliccare su serie di links sotto al campo (una specie di città suggerite...)
e Se l'utente clicca su questi link vorrei far valorizzare il campo textField della città in maniera automatica...

Sapete come è possibile farlo ?


My view ....

<?php echo CHtml::beginForm(); ?>

<?php echo CHtml::errorSummary($search); ?>

<div class="simple">
<?php echo CHtml::activeLabel($search,'Where:');?>
<?php echo CHtml::activeTextField($search,'where');?>
</div>
I suggest to you....
<?php echo CHtml::Link('rome'); ?><br>
<?php echo CHtml::Link('New York'); ?><br>
<?php echo CHtml::Link('Tokio'); ?>
<div class="action">
<?php echo CHtml::submitButton('Search'); ?>
</div>

<?php echo CHtml::endForm(); ?>

0

#2 User is offline   jackass 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 41
  • Joined: 05-January 09

Posted 01 August 2009 - 06:11 PM

che bello pensavo fossi il solo ad usare Yii :D ora è tardi domani mattina ci do un occhio perchè anche io ho bisogno di una cosa del genere byez
0

#3 User is offline   cosimfi74 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 8
  • Joined: 06-November 08

Posted 03 August 2009 - 06:30 AM

View Postjackass, on 01 August 2009 - 06:11 PM, said:

che bello pensavo fossi il solo ad usare Yii :D ora è tardi domani mattina ci do un occhio perchè anche io ho bisogno di una cosa del genere byez




No no non sei solo :P

comunque ho già risolto, ho aggirato l'ostacolo utilizzando la funzione di AutoComplete...non è quello che avevo in mente...ma risolve il problema...

Se metti su qualcosa del genere...fammi sapere..


ti ringrazio
ciao
0

#4 User is offline   StErMi 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 259
  • Joined: 30-March 09

Posted 15 October 2009 - 07:37 AM

View Postcosimfi74, on 03 August 2009 - 06:30 AM, said:

No no non sei solo :P

comunque ho già risolto, ho aggirato l'ostacolo utilizzando la funzione di AutoComplete...non è quello che avevo in mente...ma risolve il problema...

Se metti su qualcosa del genere...fammi sapere..


ti ringrazio
ciao


Quello che stai cercando di fare ha poco a che vedere con Yii e' totalmente questione di javascript. Ti creerai una serie di div con un preciso id. Quando qualcuno clicca sul div fai popolare il campo ( utilizzando l'id css ) con il valore del div.

Ora non ho modo di farti vedere un esempio sottomano, ma Yii ( o pho in generale) non c'entrano nulla con quello che vuoi fare. O almeno c'entrano se tu facessi una chiamata ajax quando cliccano sul link e poi gestisci il risultato della chiamata, ma sono tempo e risorse buttate vie :)

Vai a darti un occhiata alla documentazione di jQuery ( se intendi usare questo framework gia' integrato in Yii ), sicuramente ci sara' un esempio simile, visto che e' una cosa base base :)
0

#5 User is offline   joeysantiago 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 63
  • Joined: 01-April 10

Posted 19 April 2010 - 10:35 AM

ciao,

posso chiederti come hai gestito i risultati della ricerca?

ché io vorrei usare la ricerca per filtrare un campo di uno dei modelli... esempio:

ricerca nella index del modello Users:

<?php echo CHtml::beginForm(); ?>

<?php echo CHtml::errorSummary($search); ?>

<div class="simple">
<?php echo CHtml::activeLabel($search,'Nome utente:');?>
<?php echo CHtml::activeTextField($search,'username');?>
</div>
<div class="action">
<?php echo CHtml::submitButton('Cerca'); ?>
</div>

<?php echo CHtml::endForm(); ?>


quel che mi chiedo è: come faccio poi ad usare quel che l'utente hai inserito per filtrare i risultati?

grazie mille!
joey santiago

an Italian with Suomi inside.
0

#6 User is offline   Makis 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 4
  • Joined: 13-January 10

Posted 20 April 2010 - 09:35 PM

View Postjoeysantiago, on 19 April 2010 - 10:35 AM, said:

ciao,

posso chiederti come hai gestito i risultati della ricerca?

ché io vorrei usare la ricerca per filtrare un campo di uno dei modelli... esempio:

ricerca nella index del modello Users:

<?php echo CHtml::beginForm(); ?>

<?php echo CHtml::errorSummary($search); ?>

<div class="simple">
<?php echo CHtml::activeLabel($search,'Nome utente:');?>
<?php echo CHtml::activeTextField($search,'username');?>
</div>
<div class="action">
<?php echo CHtml::submitButton('Cerca'); ?>
</div>

<?php echo CHtml::endForm(); ?>


quel che mi chiedo è: come faccio poi ad usare quel che l'utente hai inserito per filtrare i risultati?

grazie mille!


Prima di tutto, ti conviene usare activeLabelEx che genera la label in automatico a partire da attributeLabels
dentro il tuo modello.
Per semplicità, supponiamo che il tuo modello sia User e l'azione sia index (il form con action vuota fa il submit
usando la stessa azione di partenza).
Quello che devi fare è semplicemente inserire nella indexAction

$modelName = 'User';
$attribute = 'username';
if(isset($_POST[$modelName])) {
  if(isset($_POST[$modelName][$attribute]) && !empty($_POST[$modelName][$attribute])) { // ok è un po' verboso lo so : )
     $username = $_POST[$modelName][$attribute];
     // dovresti aver già creato un oggetto CDbCriteria
     // questo gli dice aggiungi una condizione username LIKE '%$username%' e mettila in OR con eventuali
     // altre condizioni già impostate 
     $criteria->addSearchCondition($attribute,  $username, true, 'OR');
  }
}

User::model()->findAll($criteria);



l'ho scritto a memoria, ma dovrebbe funzionare
0

#7 User is offline   joeysantiago 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 63
  • Joined: 01-April 10

Posted 21 April 2010 - 02:21 AM

grazie! :)

ho scoperto che passando alla versione 1.1.1 il tutto è già fatto!!
joey santiago

an Italian with Suomi inside.
0

#8 User is offline   joeysantiago 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 63
  • Joined: 01-April 10

Posted 21 April 2010 - 02:34 AM

View Postcosimfi74, on 28 July 2009 - 04:55 AM, said:

Ciao a tutti

Prima prova in italiano....

Volevo creare una search form con un campo TextField dove l'utente ha 2 opzioni:
1) inserire direttamente il nome di una città nel textfield e cercarla.
2) cliccare su serie di links sotto al campo (una specie di città suggerite...)
e Se l'utente clicca su questi link vorrei far valorizzare il campo textField della città in maniera automatica...

Sapete come è possibile farlo ?


My view ....

<?php echo CHtml::beginForm(); ?>

<?php echo CHtml::errorSummary($search); ?>

<div class="simple">
<?php echo CHtml::activeLabel($search,'Where:');?>
<?php echo CHtml::activeTextField($search,'where');?>
</div>
I suggest to you....
<?php echo CHtml::Link('rome'); ?><br>
<?php echo CHtml::Link('New York'); ?><br>
<?php echo CHtml::Link('Tokio'); ?>
<div class="action">
<?php echo CHtml::submitButton('Search'); ?>
</div>

<?php echo CHtml::endForm(); ?>



In JQuery sarebbe molto semplice prepopolare una input con testo contenuto in un link... ecco il codice:

<input type="text" id="search" value="Inserisci il nome di una città" />
<a href="#" rel="New York" class="writer">New York</a>
<a href="#" rel="Paris" class="writer">Paris</a>
<script type="text/javascript">
$(".writer").click(function(){
        //al click sui link della classe writer attribuisco il valore all'elemento con id search
	$("#search").attr("value",$(this).attr("rel"));
});
</script>

joey santiago

an Italian with Suomi inside.
0

#9 User is offline   sensorario 

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

Posted 07 September 2010 - 11:50 AM

View Postjoeysantiago, on 21 April 2010 - 02:34 AM, said:

In JQuery sarebbe molto semplice prepopolare una input con testo contenuto in un link... ecco il codice:

<input type="text" id="search" value="Inserisci il nome di una città" />
<a href="#" rel="New York" class="writer">New York</a>
<a href="#" rel="Paris" class="writer">Paris</a>
<script type="text/javascript">
$(".writer").click(function(){
        //al click sui link della classe writer attribuisco il valore all'elemento con id search
	$("#search").attr("value",$(this).attr("rel"));
});
</script>



Che bella cosa =). Grazie mille =).
0

#10 User is offline   sensorario 

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

Posted 07 September 2010 - 11:54 AM

View Postsensorario, on 07 September 2010 - 11:50 AM, said:

Che bella cosa =). Grazie mille =).



Ho cantato vittoria troppo presto. Ho usato <?php echo CHtml::beginForm(); ?> e <?php echo CHtml::endForm(); ?> per delimitare il form. Il submit viene effettuato, ma come lo gestisco? Mi ritorna alla pagina con la stessa querystring. Mi sapete aiutarmi?
0

#11 User is offline   Nic Anji 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 37
  • Joined: 26-August 10
  • Location:Italy > Venice > Chioggia

Posted 08 September 2010 - 02:20 AM

View Postsensorario, on 07 September 2010 - 11:54 AM, said:

Ho cantato vittoria troppo presto. Ho usato <?php echo CHtml::beginForm(); ?> e <?php echo CHtml::endForm(); ?> per delimitare il form. Il submit viene effettuato, ma come lo gestisco? Mi ritorna alla pagina con la stessa querystring. Mi sapete aiutarmi?


E' normale, è il funzionamento di "default" del form: se non viene indicato nessun percorso per il suo processamento, viene generato automaticamente il percorso controllore/azione attuale.

Siccome questo è spiegato nella guida definitiva, ti rimando a quella ;)

Ti consiglio di vedere l'esempio di sviluppo del blog, precisamente la combinazione:
- controllore post, azione edit
- vista post, vista edit
0

#12 User is offline   sensorario 

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

Posted 08 September 2010 - 09:33 AM

View PostNic Anji, on 08 September 2010 - 02:20 AM, said:

E' normale, è il funzionamento di "default" del form: se non viene indicato nessun percorso per il suo processamento, viene generato automaticamente il percorso controllore/azione attuale.

Siccome questo è spiegato nella guida definitiva, ti rimando a quella ;)

Ti consiglio di vedere l'esempio di sviluppo del blog, precisamente la combinazione:
- controllore post, azione edit
- vista post, vista edit



Obbedisco
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