Jump to content
  • 0
anepri

select com país, estado, cidade não funciona

Question

Preciso fazer uma página de consulta onde selecionando a cidade traga como resultado estabelecimentos comerciais daquela cidade. O exemplo do código que estou usando funciona perfeitamente com países, estados e cidade, mas na hora que faço a função "lojas", mesmo o código sendo idêntico não aparece o resultado. O que tem me deixado doida é que os primeiros select funcionam, mas o último "lojas" não funciona de jeito nenhum! Alguém pode olhar o código e me dizer onde estou pecando?

 

$(function(){

	// Pais
	function pais(){
		$.ajax({
			type: 'GET',
			url: 'funcoes.php',
			data: {
				acao: 'pais'
			},
			dataType: 'json',
			success: function(data){
				console.log(data);
				
				for(i = 0; i < data.qtd; i++){
					$('select[name=pais]').append('<option value="'+data.id[i]+'">'+data.pais[i]+'</option>');
				}
			}
		});
	}
	pais();

	function estado(pais){
		$.ajax({
			type: 'GET',
			url: 'funcoes.php',
			data: {
				acao: 'estado',
				id: pais
			},
			dataType: 'json',
			beforeSend: function(){
				$('select[name=estado]').html('<option>Carregando...</option>');
			},
			success: function(data){
				$('select[name=estado]').html('');
				$('select[name=estado]').append('<option>Selecione o estado</option>');
				for(i = 0; i < data.qtd; i++){
					$('select[name=estado]').append('<option value="'+data.id[i]+'">'+data.estado[i]+'</option>');
				}
			}
		});
	}


	// Cidade
	function cidade(estado){
		$.ajax({
			type: 'GET',
			url: 'funcoes.php',
			data: {
				acao: 'cidade',
				id: estado
			},
			dataType: 'json',
			beforeSend: function(){
				$('select[name=cidade]').html('<option>Carregando...</option>');
			},
			success: function(data){
				$('select[name=cidade]').html('');
				$('select[name=cidade]').append('<option>Selecione a cidade</option>');
				for(i = 0; i < data.qtd; i++){
					$('select[name=cidade]').append('<option value="'+data.id[i]+'">'+data.cidade[i]+'</option>');
				}
			}
		});
	}

	function contrubuinte(cidade){
		$.ajax({
			type: 'GET',
			url: 'funcoes.php',
			data: {
				acao: 'contrubuinte',
				id: cidade
			},
			dataType: 'json',
			beforeSend: function(){
				$('select[name=contrubuinte]').html('<option>Carregando...</option>');
			},
			success: function(data){
				console.log(data);
				$('select[name=contrubuinte]').html('');
				$('select[name=contrubuinte]').append('<option>Selecione a contrubuinte</option>');
				for(i = 0; i < data.qtd; i++){
					$('select[name=contrubuinte]').append('<option value="'+data.id[i]+'">'+data.contrubuinte[i]+'</option>');
				}
			}
		});
	}

	$('select[name=pais]').change(function(){
		var id = $(this).val();
		estado(id);
	});

	$('select[name=estado]').change(function(){
		var idEstado = $(this).val();
		cidade(idEstado);
	});

	$('select[name=cidade]').change(function(){
		var id = $(this).val();
		contrubuinte(id);
	});
});
<?php

require("config.php");

$retorno = array();

if($_GET['acao'] == 'pais'){
	$sql = $pdo->prepare("SELECT * FROM pais");
	$sql->execute();	
	$n = 0;
	$retorno['qtd'] = $sql->rowCount();
	while($ln = $sql->fetchObject()){
		$retorno['pais'][$n] = $ln->pais;
		$retorno['id'][$n] 	 = $ln->id;
		$n++;
	}	
}

if($_GET['acao'] == 'estado'){
	$id = $_GET['id'];
	$sql = $pdo->prepare("SELECT * FROM estados WHERE id_pais = :id");
	$sql->bindValue(":id", $id, PDO::PARAM_INT);
	$sql->execute();
	$n = 0;
	$retorno['qtd'] = $sql->rowCount();
	while($ln = $sql->fetchObject()){
		$retorno['estado'][$n] = $ln->estado;
		$retorno['id'][$n] 	   = $ln->id;
		$n++;
	}	
}

if($_GET['acao'] == 'cidade'){
	$id = $_GET['id'];
	$sql = $pdo->prepare("SELECT * FROM cidades WHERE id_estado = :id");
	$sql->bindValue(":id", $id, PDO::PARAM_INT);
	$sql->execute();
	$n = 0;
	$retorno['qtd'] = $sql->rowCount();
	while($ln = $sql->fetchObject()){
		$retorno['cidade'][$n] = $ln->cidade;
		$retorno['id'][$n] 	   = $ln->id;
		$n++;
	}	
}

if($_GET['acao'] == 'contribuinte'){
	$id = $_GET['id'];
	$sql = $pdo->prepare("SELECT * FROM contribuinte WHERE id_cidade = :id");
	$sql->bindValue(":id", $id, PDO::PARAM_INT);
	$sql->execute();
	$n = 0;
	$retorno['qtd'] = $sql->rowCount();

	while($ln = $sql->fetchObject()){
		$retorno['contribuinte'][$n] = $ln->contribuinte;
		$retorno['id'][$n] 	   = $ln->id;
		$n++;
	}	
}


die(json_encode($retorno));
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<select name="pais">
		<option>Selecione o Pais</option>
	</select>

	<select name="estado">
		<option>Selecione o Estado</option>
	</select>

	<select name="cidade">
		<option>Selecione a Cidade</option>
	</select>

	<select name="contribuinte">
		<option>Selecione o Contribuinte</option>
	</select>


	<script src="jquery.js"></script>
	<script src="funcoes.js"></script>
</body>
</html>

 

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Olá, boa noite!!

Antes de mais, suponho que "lojas" seja o "Contribuinte" ?

A tabela 'contribuinte' existe ? tem registos ? está correntamente relacionada ?

 

Tenta criar um ficheiro php novo em que só tenhas essa tal SelectBox das lojas e tenta fazer um código em separado só para ela, podes sempre ativar a visibilidade dos erros no PHP ajuda bastante nestas situações .Para isso basta acrescentares ao teu ficheiro de código estes comandos:

<?php
// Desativa toda exibição de erros
error_reporting(0);

// Exibe erros simples
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Exibir E_NOTICE também pode ser bom para mostrar variáveis não iniciadas...
// ou com erros de digitação.
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Exibe todos os erros, exceto E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);

// Exibe todos os erros PHP (see changelog)
error_reporting(E_ALL);

// Exibe todos os erros PHP
error_reporting(-1);

// Mesmo que error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

*NOTA-> Num funcionamento normal da WebPage, deves colocar estes comandos em comentário ou então exclui-los.... 

 

Se mesmo assim não conseguires chegares a nenhum caminho diz!!

 

Boa-sorte

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By kukamax
      Bom dia, alguém me indicaria alguma biblioteca para imprimir do laravel direto para uma impressora terrmica Bermatech MP-2800 TH.
    • By Danado_
      Galera estou com uma dúvida!
      como eu posso pular linha dentro de um while da seguinte forma:
      $contato = '5';
       
      id: 1
      id: 2
      id: 3
      <br>
      id: 4
      id: 5
      <br>
       
      como eu monto essa logica?
       
      while(){ if(){} }  
    • By KABEst
      boa noite, é meu primeiro post aqui, eu preciso de ajuda pra colocar um "churrascômetro" no meu site do wordpress, nao tenho noçao nenhuma de como fazer isso, alguem pode me dar um norte? é pra um trabalho da faculdade. obrigado

      exemplo de como eu quero fazer:
      http://www.epa.com.br/churrascometro/
    • By tiagosp
      Em uma classe, tenho um método que realiza o select no sql, até o momento funciona com requisições que solicitam uma única linha, porém quando é solicitado todas as linhas, ele retorna apenas o primeiro registro contido no MySQL.
      <?php class SQL { private $SQLUsuario = "root"; private $SQLSenha = ""; private $SQLHost = "127.0.0.1"; private $SQLBD = "database1"; public function SQLSelecionar($Comando){ #Executa o comando Select no SQL $Conn2 = mysqli_connect($this->SQLHost, $this->SQLUsuario, $this->SQLSenha, $this->SQLBD); $resultado = mysqli_query($Conn2, $Comando); if (mysqli_num_rows($resultado) > 0){ return mysqli_fetch_assoc($resultado); } else{ #Select retornou sem resultado(s) return null; } mysqli_close($Conn2); } }  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.