Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Angelo Maximo MAzzo

Carregar Combo Ajax na Página de Alteração

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na página de editar insira uma chamada a função buscar_cidades() ao terminar de carregar a página:

exemplo:

$(document).ready(function(){
buscar_cidades();
});

Veja se te ajuda.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.