Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Gostaria que ao selecionar uma cidade, o jQuery fizesse um "ajax" pra pegar os bairros respectivos e mostrar as opções no select
Em JSON funcionaria melhor?
jQuery
$("#cidade").change(function() {
$.post(
"ajax/ajax-bairro.php",
{
cidade: $(this).val()
},
// como receber o array e imprimir as options no html?
// id do select: #bairros
);
});
PHP
<?php
include '../connector/connectionFactory.php';
$cidade = $_POST['cidade'];
$bairros = $mysqli->query(sprintf("SELECT * FROM tb_bairros WHERE cidade = '%s'", $cidade));
$dados = array();
while($linha = $bairros->fetch_assoc()){
array_push($dados, $linha['bairro']);
}
// como enviar o array para o jQuery?
>
Eu normalmente monto o select no retorno da consulta. Algo do tipo:
$select = "<select>";
while($linha = $bairros->fetch_assoc()){
$select .= "<option value='$linha['bairro']'>$linha['bairro']</option>";
}
$select .= "</select>";
echo $select;
E no retorno do ajax, feito pelo jquery:
$("#cidade").change(function() {
$.post(
"ajax/ajax-bairro.php",
{
cidade: $(this).val()
},
success: function(txt){
$('lugar_onde_vai_ficar_o_select').html(txt);
},
error: function(txt){
alert('ERRO ' + txt);
}
);
});
Mas e para enviar um array ao jQuery? Como faço para ele receber e fazer um append para cada valor do array
Agora entendi o que você quis dizer, funcionou!!
Obrigado, abraços.
Você pode enviar o array via echo tbm. Depois de encerrar o while faz um echo $dados;
E pode tratar o array no jQuery.
E no retorno do ajax, feito pelo jquery: