Controllare lo stato di un campo con AJAX e CakePHP

Foto di Danilo Rizzuti

Foto di Danilo Rizzuti

Immaginiamo di avere un form con una select che mi permette di selezionare la nazione a cui fa riferimento l’articolo.
Voglio consentire che l’utente traduca la nazione selezionata nella sua lingua nativa senza uscire dalla compilazione del form.

echo $form->create('Article');
echo $form->input('country_id'); // select
echo $form->submit();

Dopo aver chiuso il form


 echo $ajax->observeField( 'ArticleCountryId',
	 array(
			 'url' => array( 'controller'=>'countries','action' => 'traduci' ),
			 'update' => 'trad_nation',
			 'frequency' => 0.2,
	 )
 );

A questo punto è sufficente creare una function “traduci” nel controller “countries” il quale riceverà il valore del campo appena selezionato nella proprietà $this->data

	$this->Country->id = $this->data['Article']['country_id'];

e creare un bel form (sempre con AJAX) che aggiorni il campo tradotto.

Ricordatevi di attivare i component “AJAX” e “Javascript”, oltre a includere

	echo $javascript->link('prototype',false);
	echo $javascript->link('scriptaculous',false);

tra gli script da caricare.

5 comments for “Controllare lo stato di un campo con AJAX e CakePHP

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.