Quantcast
Channel: Últimos conteúdos
Viewing all articles
Browse latest Browse all 14190

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

$
0
0

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.


Viewing all articles
Browse latest Browse all 14190