Olá pessoal!!!
Estou voltando a programar depois de um bom tempo e o meu problema é o seguinte:
Tenho 2 combos dinâmicas Estado(UF) e Cidades.
Eu consigo tranquilamente carregar e gravar no banco através da página de cadastro e tudo funciona perfeitamente.
Porém quando recupero os dados de um registro na página de alteração a combo cidades não é carregada, pois é necessário
interagir na combo Estados para disparar o evento onChange().
Meus arquivos são:
filiais-alteração.php - página de alteração que recebe o id do registro a ser alterado.
form.php - formulário separado do arquivo pois o aproveito para cadastro e alteração. Aqui está o código AJAX.
cidades-combo.php - trecho de codigo com método para popular combo cidades e html.
form.php-----------------------------------------------------------
Código AJAX:
<script type="text/javascript">
function buscar_cidades(){
var uf = $('#uf').val();
if(uf){
var url = '../cidades/cidade-combo.php?uf='+uf;
$.get(url, function(dataReturn) {
$('#cidade').html(dataReturn);
});
}
}
</script>
código Estado e Cidades
<div class="form-group">
<label class="form-label" for="field-10">Estado(UF)</label>
<br>
<select class="form-control m-bot15" name="uf_id" id="uf" onchange="buscar_cidades()">
<option value="">Selecione...</option>
<?php
$ufs = populaComboUF($conexao);
foreach ($ufs as $uf):
$ufSelecionada = $filial['uf_id'] == $uf['uf_id'];
$selecao = $ufSelecionada ? "selected='selected'" : "";
?>
<option value="<?= $uf['uf_id'] ?>" <?= $selecao ?>>
<?= $uf['uf_descricao'] ?>
</option>
<?php
endforeach;
?>
</select>
</div>
<div class="form-group" id="cidade">
<label class="form-label" for="field-11">Cidade</label>
<br>
<select class="form-control m-bot15" name="cidade_id" id="cidade">
<option value=" ">
Selecione o Estado
</option>
</select>
</div>
filiais-alteração.php--------------------------------------------------------------
Código para retornar dados da filial
<?php
$id = $_GET['id'];
$filial = retornaFilial($conexao, $id);
?>
cidades-combo.php--------------------------------------------------------------------
<div class="form-group" id="cidade">
<label class="form-label" for="field-11">Cidade</label>
<br>
<select class="form-control m-bot15" name="cidade_id" id="cidades">
<?php
$ufs = $_GET['uf'];
$cidades = populaComboCidade($conexao, $ufs);
foreach ($cidades as $cidade):
$cidadeSelecionada = $uf['uf_id'] == $cidade['uf_id'];
$selecao = $cidadeSelecionada ? "selected='selected'" : "";
?>
<option value="<?= $cidade['cid_id'] ?>" <?= $selecao ?>>
<?= $cidade['cid_descricao'] ?>
</option>
<?php
endforeach;
?>
</select>
Como disse anteriormente tudo funciona perfeitamente com exceção da combo cidade que só funciona se interagirmos na combo estados.
Agradeço a ajuda.