Code Igniter Versão 1.5.2 - Guia do Usuário


Assistente de Formulário

O Assistente de Formulário contem funções que auxiliam no trabalho com formulário.

Carregando este Assistente

Este assistente é carregado usando o seguinte código:

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

As seguinte funções estão disponíveis:

form_open()

Cria uma tag de abertura de formulário com a URL base montada em cima de suas preferências de configuração. Permitirá que, opcionalmente, você adicione atributos e campos 'hidden'.

A principal vantagem de usar esta tag ao invés de codificar manualmente seu próprio HTML é que ela permite que seu site seja mais fácil de portar no caso de sua URL ser alterada.

Aqui está um exemplo simples:

echo form_open('email/send');

O exemplo acima criará um formulário que aponta para sua URL base mais os segmentos "email/send", desta maneira:

<form method="post" action="http:/www.seu-site.com/index.php/email/send" />

Adicionando Atributos

Atributos podem ser adicionados ao passar um array associativo como segundo parâmetro, desta maneira:

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

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

O exemplo acima criará um formulário semelhante a este:

<form method="post" action="http:/www.seu-site.com/index.php/email/send"  class="email"  id="meuform" />

Adicionando Campos Hidden

Campos Hidden podem ser adicionados ao passar um array associativo como terceiro parâmetro, desta maneira:

$hidden = array('username' => 'Jose', 'id_membro' => '234');

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

O exemplo acima criará um formulário semelhante a este:

<form method="post" action="http:/www.seu-site.com/index.php/email/send"  class="email"  id="meuform" />
<input type="hidden" name="username" value="Jose" />
<input type="hidden" name="id_membro" value="234" />

form_open_multipart()

Esta função é totalmente idêntica à tag form_open() acima, exceto pelo daoto de adicionar o atributo 'multipart', que é necessário se você deseja usar um formulário para fazer upload de arquivos.

form_hidden()

Permite gerar campos hidden. Você pode também enviar uma string nome/valor para criar um campo:

form_hidden('username', 'joaoninguem');

// Produzirá:

<input type="hidden" name="username" value="joaoninguem" />

Ou pode enviar um array associativo para criar múltiplos campos:

$dados = array(
              'name'  => 'João Ninguém',
              'email' => 'joao@algum-site.com',
              'url'   => 'http://www.algum-site.com'
            );

echo form_hidden($dados);

// Produzirá:

<input type="hidden" name="name" value="João Ninguém" />
<input type="hidden" name="email" value="joao@algum-site.com" />
<input type="hidden" name="url" value="http://www.algum-site.com" />

form_input()

Permite gerar um campo input text padrão. Você pode passar o 'name' e o 'value' do campo no primeiro e segundo parâmetros: echo form_input('username', 'joaoninguem');

Ou passar um array associativo contendo algum dado que deseje que o fomulário contenha:

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

echo form_input($dados);

// Produzirá:

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

Se quiser que o formulário contenha algum dado adicional, como JavaScript, você pode passar isso como uma string no terceiro parâmetro: $js = 'onClick="some_function()"';

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

form_password()

Esta função é idêntica em todos os aspectos à função form_input() acima exceto pelo fato de gerar um campo como type="password" (campo senha).

form_upload()

Esta função é idêntica em todos os aspectos à função form_input() acima exceto pelo fato de configurar o campo como type="file" (campo arquivo), permitindo o envio de arquivos ao servidor.

form_textarea()

Esta função é idêntica em todos os aspectos à função form_input() acima exceto pelo fato de gerar um campo "textarea". Nota: Ao invés dos atributos "maxlength" e "size" no exemplo acima, você especificará "rows" e "cols".

form_dropdown()

Permite criar um campo select padrão (drop-down). O primeiro parâmetro contém o nome do campo, o segundo parâmetro conterá um array associativo de opções, e o terceiro parâmetro conterá o valor que você deseja deixar como selecionado. Exemplo: $opcoes = array(
                  'pequena'  => 'Camisa Pequena',
                  'media'    => 'Camisa Média',
                  'grande'   => 'Camisa Grande',
                  'extragrande' => 'Camisa Extra-Grande',
                );

echo form_dropdown('camisas', $opcoes, 'grande');

// Produzirá:

<select name="camisas">
<option value="pequena">Camisa Pequena</option>
<option value="media">Camisa Média</option>
<option value="grande" selected>Camisa Grande</option>
<option value="extragrande">Camisa Extra-Grande</option>
</select>

Se quiser que a tag de abertura <select> contenha dados adicionais, como JavaScript, você pode passá-los como uma string no quarto parâmetro: $js = 'onChange="some_function()"';

echo form_dropdown('camisas', $opcoes, 'grande', $js);

form_checkbox()

Permite gerar um campo checkbox. Exemplo simples: echo form_checkbox('newsletter', 'aceitar', TRUE);

// Produzirá:


<input type="checkbox" name="newsletter" value="aceitar" checked="checked" />

O terceiro parâmetro conter um TRUE/FALSE boolenao que determina se o campo deverá vir marcado ou não.

Semelhante às outras funções de formulário neste assistente, você pode passar um array de atributos à função:

$dados = array(
              'name'        => 'novidades',
              'id'          => 'novidades',
              'value'       => 'aceitar',
              'checked'     => TRUE,
              'style'       => 'margin:10px',
            );

echo form_checkbox($dados);

// Produzirá:

<input type="checkbox" name="novidades" id="novidades" value="aceitar" checked="checked" style="margin:10px" />

Como em outras funções, se quiser que a tag contenha dados adicionais, como JavaScript, você pode passá-los como uma string no quarto parâmetro: $js = 'onClick="some_function()"';

echo echo form_checkbox('novidades', 'aceitar', TRUE, $js)

form_radio()

Esta função é idêntica em todos os aspectos à função form_checkbox() acima exceto pelo fato de configurar o campo(input) como type="radio".

form_submit()

Permite você gerar um botão submit padrão. Exemplo simples:

echo form_submit('meusubmit', 'Enviar!');

// Produzirá:


<input type="submit" name="meusubmit" value="Enviar!" />

Semelhante a outras funções, você pode enviar um array associativo no primeiro parâmetro se preferir configurar seus próprios atributos. O terceiro parâmetro permite adicionar dados extar ao seu formulário, como Javascript.

form_close()

Gera a tag de fechamento </form>. A única vantagem de é que permite que você passe informações que serão adicionadas após a tag. Por exemplo:

$string = "</div></div>";

echo form_close($string);

// Produzirá:


</form>
</div></div>

form_prep()

Permite que use com segurança HTML e caracteres como "aspas" dentro dos elementos do formulário sem quebrá-los para fora do formulário. Considere este exemplo:

$string = 'Aqui está uma string contendo um texto com "aspas".';

<input type="text" name="meuform" value="$string" />

Mesmo que a string acima contenha "aspas" ela não causará a quebra do formulário. A função form_prep convert o HTML de modo que pode ser usado com segurança:

<input type="text" name="meuform" value="<?php echo form_prep($string); ?>" />

Nota: Se você usar alguma das funções do assistente de formulário listadas nesta página os valores do formulário serão "convertidos" automaticamente, enão não é preciso chamar esta função. Use somente se você estiver criando seus próprios elementos de formulário.