**** conexão ao banco **** //CONECTA AO MYSQL $conn = mysql_connect("dbmy0101.whservidor.com", "banco", "senha") or die("Erro na conexão com a base de dados"); //SELECIONA A BASE DE DADOS $db = mysql_select_db("banco", $conn) or die("Erro na seleção da base de dados"); *** Este é o banco criado **** CREATE TABLE IF NOT EXISTS `bairros` ( `id` int(20) NOT NULL AUTO_INCREMENT, `idcidade` int(11) NOT NULL, `bairro` varchar(250) DEFAULT NULL, `ativo` varchar(1) DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=20 ; **** Inserções ao banco **** INSERT INTO `bairros` (`id`, `idcidade`, `bairro`, `ativo`) VALUES (1, 2, 'Itaquera', '1'), (2, 2, 'Vila Carmosina', '1'), (3, 2, 'Vila Formosa', '1'), (4, 2, 'Vila Antonieta', '1'), (5, 2, 'Tremembé', '1'), (6, 2, 'Jd Nossa Sra. do Carmo', '1'), (7, 2, 'Tatuapé', '1'), (8, 2, 'Vila Ré', '1'), (9, 2, 'Penha', '1'), (10, 2, 'Pq São Lucas', '1'), (11, 2, 'Vila Jacuí', '1'), (12, 2, 'Conjunto José Bonifácio', '1'), (13, 2, 'Parque do Carmo', '1'), (14, 2, 'Vila Matilde', '1'), (15, 2, 'Jardim Colônia', '1'), (16, 3, 'Cosmópolis', '1'), (17, 1, 'Pedro II', '1'), (18, 2, 'Patriarca', '1'), (19, 2, 'Artur Alvin', '1'); **** Segunda tabela **** CREATE TABLE IF NOT EXISTS `cidades` ( `id` int(20) NOT NULL AUTO_INCREMENT, `uf` enum('AC','AL','AP','AM','BA','CE','DF','GO','ES','MA','MT','MS','MG','PA','PB','PR','PE','PI','RJ','RN','RS','RO','RR','SP','SC','SE','TO') DEFAULT NULL, `cidade` varchar(250) DEFAULT NULL, `ativo` varchar(1) DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; **** Inserções **** INSERT INTO `cidades` (`id`, `uf`, `cidade`, `ativo`) VALUES (1, 'SP', 'Santo André', '1'), (2, 'SP', 'São Paulo', '1'), (3, 'SP', 'São Bernardo do Campo', '1'); **** código ajax combo.php ***** function Dados(valor) { //verifica se o browser tem suporte a ajax try { ajax = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { try { ajax = new ActiveXObject("Msxml2.XMLHTTP"); } catch(ex) { try { ajax = new XMLHttpRequest(); } catch(exc) { alert("Esse browser não tem recursos para uso do Ajax"); ajax = null; } } } //se tiver suporte ajax if(ajax) { //deixa apenas o elemento 1 no option, os outros são excluídos if( document.busca.bairro_ ){ document.busca.bairro_.options.length = 1; } idOpcao = document.getElementById("opcoes"); if( document.busca.bairro_ ){ document.getElementById("bairro_").disabled = true; } ajax.open("POST", "combo.php", true); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.onreadystatechange = function() { //enquanto estiver processando...emite a msg de carregando if(ajax.readyState == 1) { idOpcao.innerHTML = "Carregando...!"; } //após ser processado - chama função processXML que vai varrer os dados if(ajax.readyState == 4 ) { if(ajax.responseXML) { processXML(ajax.responseXML); } else { //caso não seja um arquivo XML emite a mensagem abaixo idOpcao.innerHTML = "Selecione a cidade"; } } } //passa o código do estado escolhido var params = "estado="+valor; ajax.send(params); } } function processXML(obj){ //pega a tag cidade var dataArray = obj.getElementsByTagName("cidade"); //total de elementos contidos na tag cidade if(dataArray.length > 0) { //percorre o arquivo XML paara extrair os dados for(var i = 0 ; i < dataArray.length ; i++) { var item = dataArray[i]; //contéudo dos campos no arquivo XML var codigo = item.getElementsByTagName("codigo")[0].firstChild.nodeValue; var descricao = item.getElementsByTagName("descricao")[0].firstChild.nodeValue; idOpcao.innerHTML = "Selecione"; if( document.busca.bairro_ ){ document.getElementById("bairro_").disabled = false; } //cria um novo option dinamicamente var novo = document.createElement("option"); //atribui um ID a esse elemento novo.setAttribute("id", "opcoes"); //atribui um valor novo.value = codigo; //atribui um texto novo.text = descricao; //finalmente adiciona o novo elemento if( document.busca.bairro_ ){ document.busca.bairro_.options.add(novo); } } } else { //caso o XML volte vazio, printa a mensagem abaixo idOpcao.innerHTML = "Não há bairros disponiveis"; if( document.busca.bairro_ ){ document.getElementById("bairro_").disabled = true; } } } ////////// COMBO UF ////////////// function DadosUf(valor) { //verifica se o browser tem suporte a ajax try { ajax = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { try { ajax = new ActiveXObject("Msxml2.XMLHTTP"); } catch(ex) { try { ajax = new XMLHttpRequest(); } catch(exc) { alert("Esse browser não tem recursos para uso do Ajax"); ajax = null; } } } //se tiver suporte ajax if(ajax) { //deixa apenas o elemento 1 no option, os outros são excluídos document.busca.cidadeB.options.length = 1; if( document.busca.bairro_ ){ document.busca.bairro_.options.length = 1; } idOp = document.getElementById("op"); document.getElementById("cidadeB").disabled = true; if( document.busca.bairro_ ){ document.getElementById("bairro_").disabled = true; } http_request.ajax.open("POST", "combo_uf.php", true); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.onreadystatechange = function() { //enquanto estiver processando...emite a msg de carregando if(ajax.readyState == 1) { idOp.innerHTML = "Carregando...!"; } //após ser processado - chama função processXML que vai varrer os dados if(ajax.readyState == 4 ) { if(ajax.responseXML) { processXMLuF(ajax.responseXML); } else { //caso não seja um arquivo XML emite a mensagem abaixo idOp.innerHTML = "Selecione o estado"; } } } //passa o código do estado escolhido var params = "estado="+valor; ajax.send(params); } } function processXMLuF(obj){ //pega a tag cidade var dataArray = obj.getElementsByTagName("cidade"); //total de elementos contidos na tag cidade if(dataArray.length > 0) { //percorre o arquivo XML paara extrair os dados for(var i = 0 ; i < dataArray.length ; i++) { var item = dataArray[i]; //contéudo dos campos no arquivo XML var codigo = item.getElementsByTagName("codigo")[0].firstChild.nodeValue; var descricao = item.getElementsByTagName("descricao")[0].firstChild.nodeValue; idOp.innerHTML = "Selecione"; document.getElementById("cidadeB").disabled = false; //cria um novo option dinamicamente var novo = document.createElement("option"); //atribui um ID a esse elemento novo.setAttribute("id", "op"); //atribui um valor novo.value = codigo; //atribui um texto novo.text = descricao; //finalmente adiciona o novo elemento document.busca.cidadeB.options.add(novo); } } else { //caso o XML volte vazio, printa a mensagem abaixo idOp.innerHTML = "Não há cidades disponiveis"; document.getElementById("cidadeB").disabled = true; } } **** combo .php **** //CONECTA AO MYSQL require_once("config.php"); //RECEBE PARÃMETRO $idcidade = $_POST["estado"]; //QUERY $sql = " SELECT * FROM bairros WHERE idcidade= ".$idcidade." ORDER BY idcidade ASC"; //EXECUTA A QUERY $sql = mysql_query($sql); $row = mysql_num_rows($sql); //VERIFICA SE VOLTOU ALGO if($row) { //XML $xml = "\n"; $xml .= "\n"; //PERCORRE ARRAY for($i=0; $i<$row; $i++) { $codigo = mysql_result($sql, $i, "id");$bairro = mysql_result($sql, $i, "bairro"); $xml .= "\n"; $xml .= "".$codigo."\n"; $xml .= "".$bairro."\n"; $xml .= "\n"; } //FECHA FOR $xml.= "\n"; //CABEÇALHO Header("Content-type: application/xml; charset=utf-8"); } //FECHA IF (row) //PRINTA O RESULTADO echo $xml; Todo esse código esta em fucionamento neste site http://www.jcimoveisbrasil.com/busca.php