Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Un form in pratica: la classe

Creazione passo per passo di un form utilizzando Zend_Form
Creazione passo per passo di un form utilizzando Zend_Form
Link copiato negli appunti

Visto il carattere introduttivo della presente guida, seguiremo uno degli esempi più consigliati dalle diverse letterature dedicate, e cioè quello di creare una directory application/forms in cui includeremo i nostri form.

In questa cartella dunque creiamo il file LoginForm.php con la seguente classe:

<?php
class Form_LoginForm extends Zend_Form {
           [...]
}

Questa è la classe che ci permetterà di istanziare e configurare l'oggetto form. Quando il form viene costruito, la classe richiama il metodo init() ereditato da Zend_Form, ed è qui dove possiamo, ad esempio, aggiungere al form gli elementi HTML.

Per effettuare il login abbiamo bisogno di due dati in input da parte dell'utente: il nome utente e la password (le credenziali di cui abbiamo parlato in precedenza e utilizzate per il processo di autenticazione), entrambi gestiti con due caselle di testo:

[...]
        public function init() {
                // (1) Impostiamo gli attributi "action", "method" e "id" del form
                $this->setAction('/login/submit/')
                        ->setMethod('post')
                        ->setAttrib('id', 'loginForm');
                /************************ Textbox nome utente *************************/
                // (2) creiamo un elemento di tipo "text".....
                $nomeutente = $this->createElement('text', 'username');
                //...gli associamo una etichetta
                $nomeutente->setLabel('Nome utente:');
                // (3) impostiamo i filtri e i validatori per questo elemento HTML
                $nomeutente->setRequired(TRUE)
                             ->addFilter('StringTrim')
                             ->addValidator('alnum');
                //Impostiamo un messaggio di errore personalizzato
                $nomeutente->getValidator('alnum')->setMessage('Il nome utente deve contenere solo lettere e numeri');
                $nomeutente->setAttrib('size', 35);
                //Aggiungiamo l'oggetto appena creato nel nostro form
                $this->addElement($nomeutente);
                /************************ Textbox password *************************/
                $password = $this->createElement('password', 'password');
                $password->setLabel('Password:');
                $password->setRequired(TRUE)
                          ->addValidator('stringLength', true, array(8))
                          ->addFilter('StringTrim');
                $password->getValidator('stringLength')->setMessage('La password deve contenere 8 caratteri');
                $this->addElement($password);
                //Aggiungiamo al form il pulsante di invio
                $this->addElement('submit', 'submit', array('label' => 'Entra'));
        }
[...]

La prima cosa che configuriamo sono alcuni degli attributi fondamentali per il funzionamento del form stesso (1): impostiamo dunque l'azione che si occuperà di processare il form (nel nostro caso /login/submit/), il metodo (method) con cui inviamo i dati al server (nel nostro caso utilizzeremo il metodo POST piuttosto che il GET) ed infine l'attributo identificatore id.

Il passo successivo è creare il campo di input di tipo testuale per l'inserimento del nome utente (2): utilizziamo il metodo createElement di Zend_Form passandogli come parametri il tipo di elemento che vogliamo creare (text nel nostro caso) ed il suo identificativo (username), utile per poter recuperare lato server il valore inserito dall'utente. Il processo di creazione continua impostando una etichetta per il campo, in modo da fornire all'utente un adeguato feedback sul campo che sta compilando.

Il risultato finale in codice HTML è simile al seguente:

<form id="loginForm" enctype="application/x-www-form-urlencoded" action="/ZFHtmlIt/public/login/submit" method="post">
        <div id="loginDiv">
                <ul>
                        <li>
                        <label for="username" class="leftalign required">Nome utente</label>
                        <input type="text" name="username" id="username" value="" />
                        </li>
                        <li><label for="password" class="leftalign required">Password </label>
                        <input type="password" name="password" id="password" value="" /></li>
                        <li class="submit">
                        <input type="submit" name="Entra" id="Entra" value="Entra" />
                        </li>
                </ul>
        </div>
</form>

Oltre alla creazione e configurazione base, nel codice PHP visualizzato sopra, possiamo anche notare che ad ogni elemento abbiamo associato anche un filtro e un validatore. Questi sono gli argomenti della successiva lezione.

Ti consigliamo anche