Login
Libri
Home Gli Helper Form Helper

Form Helper

Share

Il Form Helper contiente tutte le funzioni utili a lavorare con i forms.

Caricare questo Helper

Per caricare questo Helper è necessario utilizzare il seguente codice:

 $this->load->helper('form'); 

Una volta attivato saranno disponibili le seguenti funzioni:

form_open()

Questa funzione permette di aprire un form tag con un url base costruito sulla configurazione del sito. Inoltre potrà permette di aggiungere attributi al form e nascondere campi di input.

Il maggior beneficio di utilizzare questo tag invece di quello HTML consiste nel fatto che rende il sito più portabile nel momento che l'Urls non cambia mai.

Di seguito un semplice esempio:

echo form_open('email/send');

L'esempio sopra crea un form che punta al tuo URL di base più il segmento URI "email/send", come queto:

<form method="post" action="http:/example.com/index.php/email/send" /> 

Adding Attributes

Gli attributi possono essere aggiunti passandoli in un array, associandolo come secondo parametro, come questo:

$attributes = array('class' => 'email', 'id' => 'myform');

echo form_open('email/send', $attributes);

L'esempio precedente creerà un form simili al seguente:

<form method="post" action="http:/example.com/index.php/email/send"  class="email"  id="myform" />

Aggiungere campi nascosti di tipo Input

I campi nascosti possono essere passati al form associandogli un array come terzo parametro:

$hidden = array('username' => 'Joe', 'member_id' => '234');
echo form_open('email/send', '', $hidden);

Con l'esempio precedente è possibile creare un form simile al seguente:

<form method="post" action="http:/example.com/index.php/email/send">
<input type="hidden" name="username" value="Joe" />
<input type="hidden" name="member_id" value="234" />

form_open_multipart()

Questa funzione è assolutamente identica al tag form_open() ad eccezione del fatto che aggiunge l'attributo multipart, necessario se si vuole usare il form per fare upload di file.

form_hidden()

Permetterà di creare un campo nascosto di tipo Input. Per crearlo sarà necessario passare come primo parametro il nome, mentre opzionalmente si potrà passare il valore nel come secondo parametro.

form_hidden('username', 'johndoe');

Che produrrà in HTML:
<input type="hidden" name="username" value="johndoe" />

Oppure sarà possibile associare alla funzione form_hidden() un array così da creare contemporaneamente più campi nascosti:

$data = array(
 'name'  => 'John Doe',
 'url'   => 'http://example.com'
 );

Che in HTML sarà:

<input type="hidden" name="name" value="John Doe" />
<input type="hidden" name="url" value="http://example.com" />

form_input()

Permetterà di creare degli classic campi input di testo. Sarà necessario solo passare il nome come primo parametro ed il valore come secondo parametro:

echo form_input('username', 'johndoe');

Oppure è possibile associare un array contenente tutti i dati di quel campo, che si desidera:

$data = array(
 'name'        => 'username',
 'id'          => 'username',
 'value'       => 'johndoe',
 'maxlength'   => '100',
 'size'        => '50',
 'style'       => 'width:50%',
 );

echo form_input($data);

Il cui risultato in codice HTML sarà:

<input type="text" name="username" id="username" value="johndoe" maxlength="100" size="50" style="width:50%" />

Se si vuole che il form input contenga alcune informazioni aggiuntive, come Javascript, sarà possibile passarle come terzo parametro:

$js = 'onClick="some_function()"';

echo form_input('username', 'johndoe', $js);

form_password()

Questa funzione è identica alla funzione form_input() ad eccezione del fatto che con questa si genera un campo form di tipo "password".

form_upload()

Questa funzione è identica alla form_input() ad eccezione del fatto che questa genera un campo form di tipo "file" type, utilizzato per fare upload di files.

form_textarea()

Qusta funzione è identica alla form_input() tranne che questa genera un campo form di tipo "textarea". Nota: al posto degli attributi "maxlength" e "size" dell'esempio precedente, sarà possibile specificare "rows" e"cols".

form_dropdown()

Permette di creare un campo drop-down (a tendina). Il primo parametro conterrà il nome del campo, il secondo parametro conterrà l'array associato con le varie opzioni, mentre il terzo paramentro indicherà il valore 'selected' (quello selezionato di default). E' possibile passare, come terzo parametro, un array di valori, CodeIgniter crerà così una form multiple select.. Ecco un esempio:

$options = array(
'small' => 'Small Shirt',
'med' => 'Medium Shirt',
'large' => 'Large Shirt',
'xlarge' => 'Extra Large Shirt',
);

$shirts_on_sale = array('small', 'large');

echo form_dropdown('shirts', $options, 'large');


In HTML produrrà:
<select name="shirts">
<option value="small">Small Shirt</option>
<option value="med">Medium Shirt</option>
<option value="large" selected="selected">Large Shirt</option>
<option value="xlarge">Extra Large Shirt</option>
</select>


echo form_dropdown('shirts', $options, $shirts_on_sale);

Che in HTML sarà:
<select name="shirts" multiple="multiple">
<option value="small" selected="selected">Small Shirt</option>
<option value="med">Medium Shirt</option>
<option value="large" selected="selected">Large Shirt</option>
<option value="xlarge">Extra Large Shirt</option>
</select> 


Se si vuole che, aprendo il ta <select>, contenga informazioni aggiuntive, quali l'attributo id oppure codice Javascript, sarà possibile passarle come stringa nel quarto parametro:

$js = 'id="shirts" onChange="some_function();"';

echo form_dropdown('shirts', $options, 'large', $js); 


Se l'array passato come $options (secondo parametro) è un array multidimensionale, la funzione form_dropdown() genererà un <optgroup> con le chiavi dell'array come etichette.

Ultimo aggiornamento ( Martedì 10 Novembre 2009 05:16 )