Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 527874
            [titulo] => Erro de lógica na busca de bairros
            [dataCadastro] => DateTime Object
                (
                    [date] => 2015-08-05 13:37:26
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 269142
            [status] => A
            [isExample] => 
            [NomeUsuario] => William 
            [Apelido] => William (Devwilliam)
            [Foto] => 269142_20150809195205.jpg
            [Conteudo] => 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 ) )

Erro de lógica na busca de bairros

Allkateia
   - 05 ago 2015

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

#Código

<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
#Código

<?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
#Código

<?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
#Código

#
# 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;

Post mais votado

William (devwilliam)
   - 05 ago 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

Allkateia
   - 05 ago 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?

William (devwilliam)
   - 05 ago 2015

Allkateia você mudou o nome do parâmetro mas o nome da função contínua o mesmo "myFunction()" !!!

Allkateia
   - 06 ago 2015

#Código

<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()?

Allkateia
   - 06 ago 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.