Erro de lógica na busca de bairros
Pessoal, estou desenvolvendo um script para busca de cidades e bairros e em um certo momento da execução, ele não funciona, sei que é algum erro de lógica, por isso vou postar os códigos aqui para que se alguém puder me ajudar, eu agradeço.
Assim que eu executo o script, ele já me traz os estados, clico no estado escolhido e ele me traz as cidades, até aí tudo bem, porem, quando eu clico em cidades, ele não me traz os bairros.
Preciso de ajuda para resolver isso.
OBS.: Notem que eu coloquei a função bairros como comentário, pois se eu habilito ela, a função cidade não funciona.
Este é o index.php
Este é o cidades.ajax.php
Este ´o bairro.ajax.php
Este é o .SQL
Assim que eu executo o script, ele já me traz os estados, clico no estado escolhido e ele me traz as cidades, até aí tudo bem, porem, quando eu clico em cidades, ele não me traz os bairros.
Preciso de ajuda para resolver isso.
OBS.: Notem que eu coloquei a função bairros como comentário, pois se eu habilito ela, a função cidade não funciona.
Este é o index.php
<html> <head> <link rel="stylesheet" type="text/css" href="estilo.css"> <title>Exemplo</title> <style type="text/css"> *, html { font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; margin: 0px; padding: 0px; font-size: 12px; } a { color: #0099CC; } body { margin: 10px; } .carregando{ color:#666; display:none; } </style> </head> <body> <?php $pdo = new PDO( "mysql:host=localhost;dbname=brasil;", 'root', '', array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8" ) ); ?> <ul> <div id="estado"> <?php try { $results = $pdo->query("SELECT cod_estados, sigla, hifem, nome FROM estados ORDER BY nome"); } catch (Exception $e) { exit; } $sql = "SELECT cod_estados, sigla, hifem, nome FROM estados ORDER BY nome"; while($row = $results->fetch(PDO::FETCH_ASSOC)){ echo '<button onclick="myFunction(this)" name="cod_estados" class="button_est" type="button" value="'.$row['cod_estados'].'" >'.$row['nome'].''.$row['hifem'].''.$row['sigla'].'</button> '; } ?> </div> </ul> <span class="carregando">Aguarde, carregando...</span> <script src="http://www.google.com/jsapi"></script> <script type="text/javascript"> google.load('jquery', '1.3'); </script> <script type="text/javascript"> function myFunction(elmnt) { if( $(elmnt).val() ) { $('#estado').html("").show(); $('#cod_cidades').hide(); $('.carregando').show(); $.getJSON ( 'cidades.ajax.php?search=',{cod_estados: $(elmnt).val(), ajax: 'true'}, function(j) { var options = ''; for (var i = 0; i < j.length; i++) { options += '<button name="cod_cidade" onclick="FuncaoBairro(this)" class="button_est" value="' + j[i].cod_cidades + '">' + j[i].nome + '</button> '; } $('#estado').html(options).show(); $('.carregando').hide(); } ); } }; </script> <!-- <script type="text/javascript"> function myFunction(elmnt) { alert("bairros"); if( $(elmnt).val() ) { $('#estado').html("").show(); $('#cod_bairros').hide(); $('.carregando').show(); $.getJSON ( 'bairros.ajax.php?search=',{cod_cidades: $(elmnt).val(), ajax: 'true'}, function(j) { var options = ''; for (var i = 0; i < j.length; i++) { options += '<button name="cod_bairros" onclick="FuncaoBairro(this)" class="button_est" value="' + j[i].cod_bairros + '">' + j[i].nome + '</button> '; } $('#estado').html(options).show(); $('.carregando').hide(); } ); } else { $('#cod_bairros').html('<option value="">– Escolha um bairro –</option>'); } }; </script> ---> </body> </html>
Este é o cidades.ajax.php
<?php $pdo = new PDO ( "mysql:host=localhost;dbname=brasil;", 'root', '', array ( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8" ) ); $cod_estados = $_GET['cod_estados'] ; $cidades = array(); try { $results = $pdo->query("SELECT cod_cidades, nome FROM cidades WHERE estados_cod_estados=$cod_estados ORDER BY nome"); } catch (Exception $e) { // echo "Error."; exit; } while($row = $results->fetch(PDO::FETCH_ASSOC)) { $cidades[] = array ( 'cod_cidades' => $row['cod_cidades'], 'nome' => $row['nome'], ); } echo( json_encode( $cidades ) );
Este ´o bairro.ajax.php
<?php $pdo = new PDO ( "mysql:host=localhost;dbname=brasil;", 'root', '', array ( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8" ) ); $cod_cidades = $_GET['cod_cidades'] ; $bairros = array(); try { $results = $pdo->query("SELECT cod_bairros, nome FROM bairros WHERE estados_cod_estados=$cod_estados ORDER BY nome"); } catch (Exception $e) { // echo "Error."; exit; } while($row = $results->fetch(PDO::FETCH_ASSOC)) { $cidades[] = array ( 'cod_bairros' => $row['cod_bairros'], 'nome' => $row['nome'], ); } echo( json_encode( $bairros ) );
Este é o .SQL
# # Encoding: Unicode (UTF-8) # DROP TABLE IF EXISTS `cidades`; DROP TABLE IF EXISTS `estados`; CREATE TABLE `cidades` ( `estados_cod_estados` int(11) DEFAULT NULL, `cod_cidades` int(11) DEFAULT NULL, `nome` varchar(72) COLLATE utf8_unicode_ci DEFAULT NULL, `cep` varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE TABLE `estados` ( `cod_estados` int(11) DEFAULT NULL, `sigla` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL, `hifem` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL, `nome` varchar(72) COLLATE utf8_unicode_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; SET FOREIGN_KEY_CHECKS = 0; INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (1, 1, 'ACRELÂNDIA', '69945000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (1, 2, 'ASSIS BRASIL', '69935000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (1, 3, 'BRASILÉIA', '69932000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (1, 4, 'BUJARI', '69923000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (1, 5, 'CAPIXABA', '69922000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (1, 6, 'CRUZEIRO DO SUL', '69980000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (1, 7, 'EPITACIOLÂNDIA', '69934000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (1, 8, 'FEIJÓ', '69960000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (1, 9, 'JORDÃO', '69975000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (2, 10, 'ÁGUA BRANCA', '57490000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (2, 11, 'ALAZÃO', '57317000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (2, 12, 'ALECRIM', '57405000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (2, 13, 'ANADIA', '57660000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (2, 14, 'ANEL', '57710000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (2, 15, 'ANUM NOVO', '57610100'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (2, 16, 'ANUM VELHO', '57610200'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (2, 17, 'ARAPIRACA', '00000000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (2, 18, 'ATALAIA', '57690000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (2, 19, 'BAIXA DA ONÇA', '57317100'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (3, 20, 'ABACATE DA PEDREIRA', '68912350'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (3, 21, 'SERRA DO NAVIO', '68948000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (3, 22, 'AMAPÁ', '68950000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (3, 23, 'AMAPARI', '68945000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (3, 24, 'AMBÉ', '68912000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (3, 25, 'APOREMA', '68994000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (3, 26, 'ARIRI', '68912050'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (3, 27, 'BAILIQUE', '68913000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (3, 28, 'BOCA DO JARI', '68923000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (3, 29, 'CALÇOENE', '68960000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (4, 30, 'ALVARÃES', '69475000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (4, 31, 'AMATARI', '69105000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (4, 32, 'AMATURÁ', '69620000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (4, 33, 'ANAMÃ', '69445000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (4, 34, 'ANORI', '69440000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (4, 35, 'APUÍ', '69265000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (4, 36, 'ARIAÚ', '69165000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (4, 37, 'ATALAIA DO NORTE', '69650000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (4, 38, 'AUGUSTO MONTENEGRO', '69182000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (4, 39, 'AUTAZES', '69240000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (4, 40, 'AXINIM', '69210000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (5, 41, 'ABADIA', '48320000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (5, 432, 'ABAÍRA', '46690000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (5, 44, 'ABARÉ', '48680000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (5, 45, 'ABELHAS', '45112000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (5, 46, 'ABÓBORA', '48912000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (5, 47, 'ABRANTES', '42840000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (5, 48, 'ACAJUTIBA', '48360000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (5, 49, 'AÇU DA TORRE', '48288000'); INSERT INTO `cidades` (`estados_cod_estados`, `cod_cidades`, `nome`, `cep`) VALUES (5, 50, 'AÇUDINA', '47645000'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (1, 'AC', '-', 'ACRE'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (2, 'AL', '-', 'ALAGOAS'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (3, 'AP', '-', 'AMAPÁ'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (4, 'AM', '-', 'AMAZONAS'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (5, 'BA', '-', 'BAHIA'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (6, 'CE', '-', 'CEARÁ'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (7, 'DF', '-', 'DISTRITO FEDERAL'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (8, 'ES', '-', 'ESPÍRITO SANTO'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (9, 'RR', '-', 'RORAIMA'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (10, 'GO', '-', 'GOIÁS'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (11, 'MA', '-', 'MARANHÃO'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (12, 'MT', '-', 'MATO GROSSO'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (13, 'MS', '-', 'MATO GROSSO DO SUL'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (14, 'MG', '-', 'MINAS GERAIS'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (15, 'PA', '-', 'PARÁ'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (16, 'PB', '-', 'PARAÍBA'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (17, 'PR', '-', 'PARANÁ'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (18, 'PE', '-', 'PERNAMBUCO'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (19, 'PI', '-', 'PIAUÍ'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (20, 'RJ', '-', 'RIO DE JANEIRO'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (21, 'RN', '-', 'RIO GRANDE DO NORTE'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (22, 'RS', '-', 'RIO GRANDE DO SUL'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (23, 'RO', '-', 'RONDÔNIA'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (24, 'TO', '-', 'TOCANTINS'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (25, 'SC', '-', 'SANTA CATARINA'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (26, 'SP', '-', 'SÃO PAULO'); INSERT INTO `estados` (`cod_estados`, `sigla`, `hifem`, `nome`) VALUES (27, 'SE', '-', 'SERGIPE'); SET FOREIGN_KEY_CHECKS = 1;
Enio Carvalho
Curtidas 0
Melhor post
William
05/08/2015
Primeiramente parabéns Allkateia, postou a dúvida e forneceu praticamente todas as informações necessárias para que possamos tentar te ajudar!
Algumas observações iniciais:
Mesmo comentada, mas "myFunction()" é o mesmo nome tanto para bairro quanto cidades, é isso mesmo?
Outra coisa, você chama em vários scripts a conexão PDO, uma sugestão crie apenas um script de conexão e chame com include onde for necessário
Algumas observações iniciais:
Mesmo comentada, mas "myFunction()" é o mesmo nome tanto para bairro quanto cidades, é isso mesmo?
Outra coisa, você chama em vários scripts a conexão PDO, uma sugestão crie apenas um script de conexão e chame com include onde for necessário
GOSTEI 1
Mais Respostas
Enio Carvalho
05/08/2015
Sim, as funções tinham o mesmo nome, porem, mudei-as uma passou a se chamar myFunction(elmnt_est) e a outra myFunction(elmnt_cid), porem nada mudou quanto ao problema.de chamar de chamar varias vezes a conexão você sugere colocar o include.
Como faço isso e aonde eu os coloco?
Como faço isso e aonde eu os coloco?
GOSTEI 0
William
05/08/2015
Allkateia você mudou o nome do parâmetro mas o nome da função contínua o mesmo "myFunction()" !!!
GOSTEI 0
Enio Carvalho
05/08/2015
<script type="text/javascript"> function myFunction(elmnt_com) { alert("Estados"); if( $(elmnt_com).val() ) { $('#comercio').html("").show(); $('#cod_estado').hide(); $('.carregando').show(); $.getJSON ( 'estados.ajax.php?search=',{cod_estados: $(elmnt_com).val(), ajax: 'true'}, function(j) { var options = ''; for (var i = 0; i < j.length; i++) { options += '<button name="cod_estados" onclick="FuncaoEstados(this)" class="button_est" value="' + j[i].cod_estados + '">' + j[i].nome + '</button><br><br>'; } $('#comercio').html(options).show(); $('.carregando').hide(); } ); } }; </script>
Nesta parte do script, eu mando buscar todos os registros que possuam o cod_estado com o mesmo valor de $(elmnt_com).val().
Como eu faço para mandar ele buscar os registros que sejam diferentes do cod_estado declarado no $(elmnt_com).val()?
GOSTEI 0
Enio Carvalho
05/08/2015
Já troquei o nome do function myFunction(elmnt_com) para function myFunction1(elmnt_com) e mesmo assim ele não busca as informações.
Se testarem o script, ele pega os estados e ao clicar nos estados, pega as cidades, porem, ao clicar em alguma cidade, ele não carrega os bairro.
Preciso de ajuda.
Se testarem o script, ele pega os estados e ao clicar nos estados, pega as cidades, porem, ao clicar em alguma cidade, ele não carrega os bairro.
Preciso de ajuda.
GOSTEI 0