O código não é meu, então vou colocar ele aqui para ajudar quem possa precisar
FORMULÁRIO:
<select name="estados" id="estados" > <option selected="selected">-- Estados --</option> </select> <br /> <select name="cidades" id="cidades" onChange="alert(this.value);" > <option>-- Escolha um Estado --</option> </select> <br /> <select name="bairros" id="bairros"> <option>-- Escolha uma Cidade --</option> </select>
JavaScript que preenche os combobox:
jQuery(document).ready ( function() { //carrega a combo de estados na primeira vez que a página é carregada $.get("localizacoes.php", { tipo: "estado" }, function(data){ $("#estados").html(data); } ); $("#estados").change( function() { if($(this).val() == 0) { alert('Você precisa informar o ESTADO!'); $(this).focus(); } else { $.get("localizacoes.php", { tipo: "cidade", estado: $(this).val()}, function(data){ $("#cidades").html(data); } ); } } );//fim evento estados $("#cidades").change( function() { if($(this).val() == 0) { alert('Você precisa informar a CIDADE!'); $(this).focus(); } else { $.get("localizacoes.php", { tipo: "bairro", cidade: $(this).val()}, function(data){ $("#bairros").html(data); } ); } } );//fim evento cidades $("#bairros").change( function() { if($(this).val() == 0) { alert('Você precisa informar o BAIRRO!'); $(this).focus(); } else { return true; } } ); } );
Arquivo PHP que faz a pesquisa e monta as opções:
// coloque aqui a conexão com o banco de dados $str = ""; switch($_GET['tipo']) { case 'estado' : $result = mysql_query("SELECT * FROM estados_federacao")or die("Query invalida: " . mysql_error()); while ($row = mysql_fetch_array($result)) { $option = $row["uf"]; $string = $row["estado"]; $str .= "<option value=\"$option\">$string</option>"; } echo $str; break; case 'cidade' : $result = mysql_query("SELECT * FROM municipios WHERE uf = '". $_GET['estado'] ."'") or die("Query invalida: " . mysql_error());; while ($row = mysql_fetch_array($result)) { $option = $row["nome_municipio"]; $string = $row["nome_municipio"]; $str .= "<option value=\"$option\">$string</option>"; } echo $str; break; case 'bairro' : $result = mysql_query("SELECT * FROM municipios_bairros WHERE municipio = '". $_GET['cidade'] ."'" ) or die("Query invalida: " . mysql_error());; while ($row = mysql_fetch_array($result)) { $option = $row["bairro_id"]; $string = $row["bairro"]; $str .= "<option value=\"$option\">$string</option>"; } echo $str; break; }