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 Sapinn
      Tô fazendo esse forum pq não achei nada que me ajudasse. Tenho um site em que os professores dão temas para as usuarios produzirem textos, basicamente um site de historias. Preciso que o aluno saiba se ja fez um texto sobre aquele determinado tema. Sendo assim tenho duas tabelas no meu banco usuario que cadastra todos os usarios e historia que tem o tema. Quando o aluno vai enviar a historia automaticamente envia seu email. O que eu realmente quero é comparar se o email existe nas duas tabelas se sim ele retorna já foi feito se não ele retorna Nada feito ainda.
    • By _FelipeOlvr
      Oi pessoal, blz?
       
      Bom, passei quase a tarde toda pra fazer o seguinte:
       
      Imagina que o body tem scroll Y.
      agora imagina que no meio do body tem um elemento que tem scroll no sentido X ( <--------> ).
       
      Minha dúvida é a seguinte: Como eu faço pra que, quando eu colocar o mouse em cima desse elemento que sofre scroll no sentido X, o scroll passe a acontecer nele, e não mais no body.
       
      ( Eu sei que se segurar o SHIFT e girar a rodinha do mouse, o scroll acontece somente nele. Mas eu queria tentar isso, pra dar um trabalho a menos pro usuário )
       
      Fiz um layout básico pra simular o layout em que quero fazer isso. Segue:
       
      <!DOCTYPE html> <html lang="pt-BR"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title> JS | Scroll </title> <style> body { min-height: 200vh ; display: flex ; flex-direction: column ; justify-content: center ; } .container-scroll-x { background-color: rgb(219, 237, 240) ; padding: 50px ; } .content { background-color: rgb(127, 189, 207) ; overflow-x: auto ; white-space: nowrap ; padding: 30px ; } </style> </head> <body> <div class="container-scroll-x"> <div class="content"> Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. </div> </div> </body> </html> Desde já agradeço a ajuda.
       
       
    • By eduardaarosaa
      Estou tentando fazer um validador de idade, mas meu onclick não está retornando como o esperado. O caminho para o aquivo externo está correto, já testei com um alert.
       
      Meu HTML:
       
      <!DOCTYPE html>
      <html lang="pt-br">
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <title>Verificador de Hora</title>
          <link rel="stylesheet" type="text/css" href="style/style.css">
      </head>
      <body>
          <header>
              <h1>Verificador de Idade</h1>
          </header>
          <section>
              <div>
                  <p>Ano de nascimento:
                      <input type="number" name="txtnumber" id="txtano">
                  </p>
                  <p>
                      Sexo:
                      <input type="radio" name="radiosex" id="masc" checked>
                      <label for="masc">Masculino</label>
                      <input type="radio" name="radiosex" id="fem" >
                      <label for="fem">Feminino</label>
                  </p>
                  <p>
                      <input type="button" value="Verificar" onclick="verificar()">
                  </p>
                 
              </div>
              <div id="res">
                  Preencha os campos e veja o resultado.
              </div>
          </section>
          <footer>
              <p>&copy; Eduarda Rosa</p>
          </footer>
          <script src="script/script.js"></script>
      </body>
      </html>
       
      e o JS: 
       
      function verificar(){
          var data = new Date();
          var ano = data.getFullYear();
          var fano = document.getElementById('txtano');
          var res = document.querySelector('div#res');
          if(fano.Value.length == 0 || fano.value > ano){
              window.alert("Error, verifique os dados e tente novamente!");
          }else{
              window.alert("Ok");
          }
      }
       
       
    • By Kellyfer
      Ola estou tentando publicar imagens multilas usando o comando FOR mas nao estou acertando, alguem poderia me ajudar??
      /*script*/
      <?php 
      date_default_timezone_set('America/Sao_Paulo');
      session_start();?> 
      <!DOCTYPE html>
      <html lang="pt-br">
      <head>
          <meta charset="utf-8">
          <title>Upload de Imagens</title>
      </head>
      <body>
      <!--FORMULÁRIOS-->
      <form action="upload.php" method="post" enctype="multipart/form-data">
          <input type="file" name="arquivos[]" multiple required>
          <input type="submit" value="Publicar">
      </form>
      <p>
      <?php 
      if(isset($_SESSION['erro'])):
          echo $_SESSION['erro'];
          session_unset();
      elseif(isset($_SESSION['sucesso'])):
          echo $_SESSION['sucesso'];
          session_unset();
      endif;
      ?>
      </p>
      <?php 
      /*MOSTRANDO AS IMAGENS NA TELA*/
      $utf8 = header("content-type:text/html;charset= utf-8");
      $conn = new mysqli('localhost','thesim','xthesimx1986','db_galeria');
      $conn->set_charset("utf8");
      $busca_image = "SELECT id, nome_arquivo FROM tb_upload  ORDER BY id DESC";
      $res = mysqli_query($conn, $busca_image);
       if(mysqli_num_rows($res) <= '0'){
           echo "Nenuma imagem encontrada!";
       }else{
           while($res_pos =mysqli_fetch_array($res)){
               $nome_arquivo    =$res_pos[0];
      for($c=0; $c>=10; $c++);
      print "<div class='foto'><img src='uploads/$nome_arquivo$c</div>";
      }
      }
      ?>
      </body>
      </html>
      Imagens anexadas



×

Important Information

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