Fórum Erro de lógica na busca de bairros #527866
05/08/2015
0
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
Curtir tópico
+ 0Post mais votado
05/08/2015
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
William
Gostei + 1
Mais Posts
05/08/2015
Enio Carvalho
Como faço isso e aonde eu os coloco?
Gostei + 0
05/08/2015
William
Gostei + 0
06/08/2015
Enio Carvalho
<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
06/08/2015
Enio Carvalho
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
Clique aqui para fazer login e interagir na Comunidade :)