Ecco un'altra classe, un elemento custom di HTML_Quickform, che ho implementato per migliorare le interfacce dei siti che sviluppo internamente nella mia società e che pubblico dopo un po' di pulizia del codice.
HTML_QuickForm_LiveText è un campo di testo che intercetta la pressione dei tasti ed effettua una ricerca AJAX al volo, basandosi su quanto è stato scritto al momento, e mostra i risultati, se si seleziona uno dei risultati il suo valore va a rimpiazzare il contenuto della campo di testo.
Il meccanismo è simile a quello implementato nei maggiori motori di ricerca, quali Google, e già ci sono in giro altre classi in PHP (e altri linguaggi) che implementano la stessa cosa.
Ho visto un sacco di esempi online, ma nessuno mi soddisfaceva in pieno, così ho pensato di scrivere un componente di HTML_Quickform che avesse anche la possibilità di:
- inserire nella stessa pagina più elementi di tipo "live", che effettuassero la ricerca via AJAX attraverso "metodi" e/o "stub" diversi.
- modificare più di un elemento della pagina in base al risultato della ricerca, in maniera elegante e flessibile.
HTML_QuickForm_LiveText permette di inserire in una stessa pagina due (o più) elementi ognuno che effettua la sua ricerca attraverso pagine lato server diverse.
Per vedere all'opera HTML_QuickForm_LiveText c'è un esempio di cui si può vedere il sorgente.
Se poi il risultato della ricerca è un oggetto complesso (tipo id, nome, cognome, indirizzo), HTML_QuickForm_LiveText fornisce la possibilità di definire una mappatura tra i singoli elementi dei risultati e elementi HTML (input o div, per esempio) della pagina, in modo che quando un risultato è selezionato viene automaticamente scomposto e visualizzato negli elementi HTML indicati.
HTML_QuickForm_LiveText è un package progettato per essere usato con PEAR, per cui per installarlo si devono seguire le stesse regole valide per gli altri package PEAR.
Il mio channel PEAR è pear.ambrosanio.com dove è possibile trovare sempre l'ultima versione dei miei package. Per aggiungerlo al proprio repository PEAR basta eseguire il comando:
pear channel-discover pear.ambrosanio.com
Per installare HTML_QuickForm_LiveText basta eseguire il comando
pear install pear.ambrosanio.com/HTML_QuickForm_LiveText
Commenti e suggetimenti sono i benvenuti.
