Olha lá, eu não consigo reproduzir este procedimento. Por exemplo:

Controller:
http://pastebin.com/V0UuFtbb

E minha view ficou assim:
http://pastebin.com/fRRnjJHY

Neste caso, ambos os campos são obrigatórios, sendo a idade um inteiro, lógico.
Porém se colocarmos rafael no campo de idade, a validação não passa, porém no 
campo idade vem preenchido rafael depois do post.

Não consegui perceber pq com vcs não.

Abraços


Em 2010/11/12, às 10:11, Paulo Balzi escreveu:

> Rafael, eu resolvi esse problema fazendo o seguinte:
> 1. extendi a classe Form_Validation do CI
> 2. e criei o meu método para repopular o formulário
> 3. explicação do funcionamento:
>   - primeiro ele verifica se o formulário já foi submetido
>   - se sim ele pega o valor do formulário e insere novamente nos campos
>   - senão, ele recupera o valor do banco de dados, sfc.
>   - e ainda existe a possibilidade de adicionar um valor padrão para o campo, 
> e todo vez q um novo formulário for aberto, o valor será inserido
> 
>    /**
>      * 
>      * Atribui o valor do campo no formulário. Ocorre tanto num erro de envio 
> ou recuperando informações no banco de
>      * dados
>      * @param string $field nome do campo no formulário
>      * @param array $resultSet retorno da consulta
>      * @param string $default valor padrão para o campo no formulário
>      * @param boolean $isBool identifica se o campo no formulário receberá 
> somente valores booleanos (para os campos
>      * do tipo checkbox e radiobutton )
>      */
>     public function repopulateForm($field, $resultSet, $default = '', $isBool 
> = false) 
>     {
>         if ( isset($this->_field_data[$field]) ) {
>             return $this->_field_data[$field]['postdata'];
>         } elseif ( !is_null($resultSet) ) {
>             /* recupera o prefix da tabela -- "isso foi feito devido a minha 
> necessidade - toda campo das tabelas possui um prefix específico*/
>             foreach ($resultSet as $key=>$value) {
>                 $tablePrefix = substr($key, 0, strpos($key, '_'));
>                 break 1;
>             }
>             
>             /* pega o valor do banco de dados */
>             $fd = "{$tablePrefix}_{$field}";
>             $ret = $resultSet->$fd;
>             /* se o campo for do tipo radio ou checkbox */
>             if ( $isBool === true ) {
>                 /* utilizo postgres e ele retorna t pra true e f para false */
>                 return ($ret == 't') ? (true) : (false);
>             } else {
>                 return $ret;
>             }
>         } else {
>             /* possibilidade de adicionar um valor padrõa para o campo */
>             return $default;    
>         }    
>     }
> 
> espero ter ajudado.
> 
> -- 
> Paulo Balzi
> _______________________________________________
> [email protected]
> http://www.codeigniter.com.br
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> 
> ---------------------------
> Oportunidade de negócio
> http://www.franquiasargohost.net
> ---------------------------

_______________________________________________
[email protected]
http://www.codeigniter.com.br
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

---------------------------
Oportunidade de negócio
http://www.franquiasargohost.net
---------------------------

Responder a