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 ---------------------------

