[eluser]mestresan[/eluser]
:: Controller sample ::
Code:
/**
* formulario para cadastro e edicao
*/
function cadastro() {
$this->autenticacao_model->restrict(); // verifica login e permissoes do usuario
$this->data['main_content'] = 'sar/form_cadastro'; // nome da view que deve carregar
$this->data['data']['validation_errors'] = '';
$this->data['data']['validation_sucesso'] = '';
$this->data['data']['array_situacao_busca'] = $this->config->item('array_situacao_busca');
$this->data['data']['array_nao_sim_busca'] = $this->config->item('array_nao_sim_busca');
$this->data['data']['array_sistemas_painel'] = $this->config->item('array_sistemas_painel');
$this->data['data']['combobox_secoes_principais'] = $this->secao_model->combobox();
// combobox categorias
$this->load->model('secao_categorias_model');
$this->data['data']['combobox_categorias'] = $this->secao_categorias_model->combobox();
if ( strtolower($_SERVER['REQUEST_METHOD']) != 'post') {
$codigo = (int)$this->uri->segment(4);
$this->secao_model->set_id($codigo);
$this->secao_model->recuperar();
} else {
// formulario post
// carregando dados
$this->secao_model->set_id($this->input->post('txtCodigo'));
$this->secao_model->set_nome($this->input->post('txtNome'));
$this->secao_model->set_url($this->input->post('txtUrl'));
$this->secao_model->set_categoria($this->input->post('slCategoria'));
$this->secao_model->set_exibe_menu($this->input->post('slMenu'));
$this->secao_model->set_status($this->input->post('slStatus'));
$this->secao_model->set_pai($this->input->post('slSecaoPai'));
$this->secao_model->set_tipo_acesso($this->input->post('cbSistemaAcesso'));
if ($this->form_validation->run('secoes') == FALSE) {
// erro
$this->data['data']['validation_errors'] = '<ul class="message error no-margin">'.$this->form_validation->error_string('<li>', '</li>').'<li class="close-bt"></li></ul>';
} else {
if($this->secao_model->gravar()) {
$this->data['data']['validation_sucesso'] = '<ul class="message success no-margin"><li>Gravado com sucesso.</li><li class="close-bt"></li></ul>';
}
}
}
$this->data['data']['item'] = $this->secao_model->to_array();
$this->parser->parse(BACKEND_LAYOUT_PATH . 'main_tpl', $this->data);
}
:: view ::
Code:
<?php
$attributes = array('class' => 'block-content form', 'id' => 'formCadastroEdicao', 'name' => 'formCadastroEdicao');
$hidden = array('txtCodigo' => $item['codigo']);
echo form_open('sar/secoes/cadastro/'.$item['codigo'], $attributes, $hidden);
?>
<fieldset class="grey-bg">
<legend>Campos requeridos</legend>
<div class="colx3-left required">
<label for="txtNome">Nome</label>
<p class="input-height">
<input type="text" name="txtNome" id="txtNome" value="<?php echo $item['nome']; ?>" class="full-width" title="requerido">
</p>
</div>
....
<?php form_close(); ?>
The problem... on First submit is OK.
But, if return for form because form_validation, I cant re-submit. I receive error from CSRF.
Thx in advanced.