Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 31 di 56
  • livello intermedio
Indice lezioni

Metodi per la creazione del form: input testuali

Definiamo i metodi necessari alla creazione di un form per il nostro CMS partendo dalla creazione di un campo di input testuale.
Definiamo i metodi necessari alla creazione di un form per il nostro CMS partendo dalla creazione di un campo di input testuale.
Link copiato negli appunti

Per la definizione dei metodi necessari alla creazione del form partiremo dal più semplice di tutti: la creazione di un campo di input testuale. Di fatto il nostro metodo avrà bisogno di tre parametri: il nome del campo, il valore (value) e il testo dell'etichetta associata (label). Ovviamente possiamo estendere questo lavoro con una serie di parametri aggiuntivi.

Nello switch all'interno del ciclo while avremo quindi il case 'text'; in questo caso chiameremo il metodo privato crea_text() passandogli come argomenti il nome del campo prelevato dalla tabella struttura, il valore di quel campo contenuto eventualmente nell'esito della prima query e, infine, il testo della label da mostrare.

case 'text':
	$out.=$this->crea_text($array['nome'],$row[$array['nome']],$array['label']);
	break;

Il metodo privato crea_text() creerà il markup HTML necessario:

private function crea_text($nome,$valore,$label){
	$out = '<div>';
	$out.='<label for="'.$nome.'">'.$label.'</label><br />';
	$out.='<input type="text" id="'.$nome.'" name="'.$nome.'" class="form-control" value="'.htmlentities(stripslashes($valore)).'" />';
	$out.='</div>';
	return($out);
	}

Quindi il nostro metodo avrà tre parametri di input, restituirà una stringa HTML come output e il campo di input e la sua label saranno contenuti in un tag div.

Il valore del testo della label corrisponde al parametro label passato, useremo il nome del campo per legare la label al suo input e assegnare gli attributi id e name, infine cercheremo di inserire il valore del value con le dovute cautele per evitare che dei caratteri speciali possano alterare il nostro output HTML; useremo quindi il costrutto htmlentities(stripslashes($valore)) per assegnare il valore del value.

Questo può essere considerato il prototipo di tutti i campi di input che andremo a costruire, volendo si potrebbe razionalizzare il codice usando un parametro aggiuntivo per il tipo di input, oppure, se si vuole diversificare l'output, possiamo tenerli separati.

Il case 'hidden' è ancora più semplice, non dovendo visualizzare niente non ci sarà bisogno della label e quindi saranno sufficienti due parametri: il nome del campo e il valore. Come nel caso precedente lo switch intercetta il case 'hidden' e invoca il metodo associato:

case 'hidden':
	$out.=$this->crea_hidden($array['nome'],$row[$array['nome']]);
	break;
..
private function crea_hidden($nome,$valore){
	$out='<input type="hidden" id="'.$nome.'" name="'.$nome.'" value="'.$valore.'" />';
	return($out);
	}

Per quanto riguarda gli altri casi di input, ovvero "password", "email", "search" e "date", saranno necessarie solo piccole variazioni sul tema del metodo crea_text(), al punto che si potrebbe seriamente pensare alla parametrizzazione di questo valore.

Ti consigliamo anche