Boa noite,
Estou fazendo um site e nele eu tenho dois dropdown, estado e cidade, gostaria que as cidades fossem carregadas conforme o estado selecionado. Quando eu seto um valor default da certo, porém, quando estou mudando o estado as cidades não são alteradas.
Em fóruns que pesquisei eu vi que tem que usar js, ajax e json. Peguei alguns exemplos e tentei aplicar no site, só que não deu muito certo pelo fato de eu estar usando codeigniter que estou aprendendo no momento.
Gostaria de pedir ajuda para conseguir fazer o que quero. Desde já agradeço a atenção.
//UnidadeFederativa_model
public function lista_uf() {
// busca os ufs no db
$this->db->select ( 'id, sigla, nome' );
$this->db->from ( 'unidade_federativa' );
$results = $this->db->get ()->result_array ();
$ufs = array();
foreach ($results as $result) {
$ufs[$result['id']] = $result['sigla'];
}
return $ufs;
}
//municipio_model
public function lista_municipio_por_uf($uf) {
// busca os cidades no db
$this->db->select ( 'id, nome, unidade_federativa' );
$this->db->from ( 'municipio' );
$this->db->where('unidade_federativa', $uf);
$results = $this->db->get ()->result_array ();
$municipios = array();
foreach ($results as $result) {
$municipios[$result['id']] = $result['nome'];
}
return $municipios;
}
//controller
$this->load->model ( 'municipio_model', 'municipio' );
$this->load->model ( 'unidadefederativa_model', 'uf' );
$dados['estados'] = $this->uf->lista_uf();
//$dados['municipios'] = $this->municipio->lista_municipio_por_uf(24); //essa linha foi usada para teste
$this->load->view ( 'orcamento', $dados );
//view
<div class="form-group col-xs-5 col-sm-2 col-lg-1">
<?php
echo form_label('Estado: ', 'uf');
echo form_dropdown('uf', $estados, 24, array('class' => 'form-control', 'id'=> 'uf'));
?>
</div>
<div class="form-group col-xs-12 col-sm-5 col-lg-5">
<?php
$cod_uf = 24;
$municipios = $this->municipio->lista_municipio_por_uf($cod_uf);
echo form_label('Cidade: ', 'municipio');
echo form_dropdown('municipio', $municipios, '', array('class' => 'form-control', 'id'=> 'municipio'));
?>
</div>