Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite galera...
Sou novo no js e estou tendo dificuldades com o famoso busca cidade...
tenho um select no meu php que quando seleciono o estado ele tem que me retornar as cidades referente aquele estado.
a função que criei para fazer isso.
function BuscarCidades(){
var idEstado = $('#estado').val();
if($('#cidade').val() == ""){
$.ajax({
url: '../Controller/ControllerCliente.php',
type: 'POST',
dataType: 'html',
data: {action: 'buscaCidade', idEstado:idEstado},
success:function(data){
$('#cidade').empty().append(data);
}
});
}
}
php do select
<div class="form-group col-md-3">
<label for="txtUf">UF * </label>
<select class="form-control" name="id_estado" id="id_estado" onchange="BuscarCidades()" required>
<option>Selecione...</option>
<?php foreach ($rEstado as $estado): ?>
<option value="<?= $estado['ID_ESTADO']?>" id="estado"><?= $estado['NOME_ESTADO']; ?></option>
<?php endforeach; ?>
</select>
</div>
<div class="form-group col-md-3">
<label for="cbCidade">Cidade * </label>
<select class="form-control" name="id_cidade" id="id_cidade" required>
<option>Selecione...</option>
<?php foreach ($rCidade as $cidade): ?>
<option value="<?= $cidade['ID_CIDADE'] ?>" id="cidade"><?= $cidade['NOME_CIDADE'] ?></option>
<?php endforeach; ?>
</select>
</div>
controller que uso no action
case 'buscarCidades':
$idEstado = strip_tags($_REQUEST['id_estado']);
$listaCidades = $Cliente->recuperaCidade($idEstado);
$html = "";
foreach ($listaCidades as $cidade) {
$html .="<option value='".$cidade['ID_CIDADE']."'>".$cidade['NOME_CIDADE']."</option>";
}
echo $html;
break;
e o php que faz o select no banco.
function recuperaEstado(){
$queryBuscaEstado = $this->connMysql->prepare("SELECT ID_ESTADO, NOME_ESTADO FROM TBL_ESTADO ORDER BY UF_ESTADO");
$queryBuscaEstado->execute();
$listaEstado = array();
while ($row = $queryBuscaEstado->fetch(PDO::FETCH_ASSOC)) {
$listaEstado[] = array('ID_ESTADO' =>utf8_encode($row["ID_ESTADO"]),
'NOME_ESTADO' =>utf8_encode($row["NOME_ESTADO"]));
}
return $listaEstado;
}
function recuperaCidade($idEstado){
$rIdEstado = strip_tags($idEstado);
$sql = "SELECT ID_CIDADE, NOME_CIDADE FROM TBL_CIDADE WHERE ID_ESTADO =? ORDER BY NOME_CIDADE";
$queryBuscaCidade = $this->connMysql->prepare($sql);
$queryBuscaCidade->bindValue(1, $rIdEstado);
$queryBuscaCidade->execute();
$listaCidade = array();
while ($row = $queryBuscaCidade->fetch(PDO::FETCH_ASSOC)) {
$listaCidade[] = array( 'ID_CIDADE' =>utf8_encode($row["ID_CIDADE"]),
'NOME_CIDADE' =>utf8_encode($row["NOME_CIDADE"]));
}
return $listaCidade;
}
então o estado funciona, mas a cidade não lista..
desde já agradeço.
Carregando comentários...