Select Dinamico - Codeigniter
Olá!
Em um formulário de usuário, eu carrego informações, como nome de usuário, senha e permissões.
Mas agora eu incluí na tabela de permissoes uma coluna chamada grupo.
E incluí no formulário de usuarios um campo grupo, para que; toda vez que for escolhido a permissão do usuário, o campo grupo carregue o nome do grupo da permissão selecionada.
Sei que no MYSQL, a querie utilizada seria:
`SELECT `grupo` FROM `permissoes` WHERE `id` = 1`
Mas não consegui fazer isto no codeigniter.
Na função editar,
Recupero os dados do usuário e exibo as informações na view da seguinte forma:
**Controller Usuário**
//Obtem dados do usuário
$this->data['usuarios'] = $this->Usuarios_model->obter_id($this->uri->segment(4));
//Obtem Permissões Ativas
$this->data['permissoes'] = $this->Permissoes_model->obter_ativo('permissoes', 'permissoes.id,permissoes.nome');
//Carrega View
$this->template->admin_render('admin/usuarios/editar', $this->data);
**Model Usuário:**
//Função obter ID
function obter_id($id){
$this->db->select('usuarios.*, permissoes.nome as permissao');
$this->db->select('usuarios.*, permissoes.grupo as grupo');
$this->db->join('permissoes', 'usuarios.permissoes_id = permissoes.id', 'left');
$this->db->where('usuarios.id',$id);
$this->db->limit(1);
return $this->db->get('usuarios')->row();
}
**Model Permissões:**
//Exibir somente permissões ativas
function obter_ativo($tabela,$campos){
$this->db->select($campos);
$this->db->from($tabela);
$this->db->where('situacao',1);
$query = $this->db->get();
return $query->result();;
}
**View Usuário:**
<div class="col-sm-3">
<label for=""><?php echo lang('usuarios_permissao');?></label>
<select name="permissoes_id" id="permissoes_id" class="form-control">
<?php foreach ($permissoes as $permissao) {
if($permissao->id == $usuarios->permissoes_id){ $selected = 'selected';}else{$selected = '';}
echo '<option value="'.$permissao->id.'"'.$selected.'>'.$permissao->nome.'</option>';
} ?>
</select>
</div>
<div class="col-sm-3">
<label for=""><?php echo 'Grupo'?></label>
<select name="grupo_id" id="" class="form-control" readonly>
<?php foreach ($permissoes as $permissao) {
$id = $permissao->id;
$permissoes_id = $usuarios->permissoes_id;
$grupo_id = $permissao->grupo;
if ($grupo_id == 1) {
$grupo = 'Adminstrador';
}
elseif ($grupo_id == 2) {
$grupo = 'Usuário';
}
elseif ($grupo_id == 3) {
$grupo = 'Suporte';
}
elseif ($grupo_id == 4) {
$grupo = 'Cliente';
}
if($id == $permissoes_id){ $selected = 'selected';}else{$selected = '';}
echo '<option value="'.$grupo_id.'"'.$selected.'>'.$grupo.'</option>';
} ?>
</select>
</div>
**Tabelas usuário:**
id INT(11) NOT NULL AUTO_INCREMENT,primeiro_nome VARCHAR(40) NOT NULL,ultimo_nome VARCHAR(40) NOT NULL,nome_usuario VARCHAR(40) NOT NULL,telefone VARCHAR(20) NULL DEFAULT NULL,email VARCHAR(80) NOT NULL,senha VARCHAR(45) NOT NULL,permissoes_id INT NOT NULL,grupo INT NOT NULL,
Tabelas Permissoes:
id INT(11) NOT NULL AUTO_INCREMENT,nome VARCHAR(80) NOT NULL,descricao VARCHAR(80) NULL DEFAULT NULL,grupo INT NOT NULL,permissoes TEXT NULL,situacao TINYINT(1) NULL,

Discussão (0)
Carregando comentários...