Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Remazela

PHP - Ajuda com Filtragem de Dados

Recommended Posts

Caros amigos.

Por favor, me perdoa por recorrer ao auxílio dos amigos, abaixo anexei a imagem do filtro para melhor entender.

15253409_1611449639161011_15101069650305

O Filtro faz a busca corretamente, trazendo na Tela todas as opções escolhidas.

O problema é o seguinte: conforme acima na imagem mencionado, quando busco um Tipo de Categoria - quero que o filtro me traz somente o Bairro que tiver a categoria escolhida e não todos como mostrado acima.

A minha tabela está assim:

CREATE TABLE IF NOT EXISTS `imoveis` (
  `imovelId` int(11) NOT NULL AUTO_INCREMENT,
  `clienteId` varchar(255) DEFAULT NULL,
  `imovelVisitas` varchar(100) DEFAULT NULL,
  `imovelTitulo` varchar(40) DEFAULT NULL,
  `imovelTipo` varchar(100) DEFAULT NULL,   //categorias: casa / apartamento, etc
  `imovelValor` varchar(255) DEFAULT NULL,
  `imovelNegocio` varchar(255) DEFAULT NULL,
  `imovelDescricao` varchar(255) DEFAULT NULL,
  `imovelRua` varchar(255) DEFAULT NULL,
  `imovelNumero` varchar(10) DEFAULT NULL,
  `imovelCompl` varchar(255) DEFAULT NULL,  
  `imovelBairro` varchar(255) DEFAULT NULL,
  `imovelCidade` varchar(255) DEFAULT NULL,
  `imovelEstado` varchar(2) DEFAULT NULL,	
  `imovelProximo` varchar(255) DEFAULT NULL,
  `imovelCadastro` timestamp NULL DEFAULT NULL,
  `imovelUpdate` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `imovelTermino` timestamp NULL DEFAULT NULL,
  `imovelStatus` varchar(255) DEFAULT NULL,
  `imovelConfirma` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`imovelId`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

Abaixo posto meus fontes:

filtro.js (aqui faço a busca de campo a campo). Observação: name=tipo é [ alugar / comprar ] vem de um selected

$(function(){
  
    $("select[name=tipo]").change(function(){
	  beforeSend:$("select[name=categoria]").html('<option value="0">Aguarde Carregando...</option>');
	  var categoria = $("select[name=tipo]").val();

	  $.post("filtro/categoria.php",{categoria: categoria},function(pega_cat){
	  complete:$("select[name=categoria]").html(pega_cat);
	  
	      $("select[name=categoria]").change(function(){
	      beforeSend:$("select[name=sub-cat]").html('<option value="0">Aguarde Carregando...</option>');
	      var cidade = $("select[name=categoria]").val();

	        $.post("filtro/cidade.php",{cidade: cidade},function(pega_cidade){
		    complete:$("select[name=sub-cat]").html(pega_cidade);
			 
				$("select[name=sub-cat]").change(function(){
	            beforeSend:$("select[name=bairro]").html('<option value="0">Aguarde Carregando...</option>');
	            var bairro = $("select[name=sub-cat]").val();  

		          $.post("filtro/bairro.php",{bairro: bairro},function(pega_bairro){
			      complete:$("select[name=bairro]").html(pega_bairro);			
					
		          }); //Fecha Pega Bairro

	            }); //Fecha Função Bairro

	        }); //Fecha Pega Cidade

          }); //Fecha Função Categoria

	  }); //Fecha Pega Categoria

    }); //Fecha Tipo de Transação

}) //Fecha Function

categoria.php

<?php 
        //Escolher o Tipo de Categoria: casa / apartamento / etc       

        include"../Connections/painel_config.php";

	$conecta = mysql_connect("$hostname_painel_config","$username_painel_config","$password_painel_config");

	$db = mysql_select_db("$database_painel_config");

	$cat = $_POST['categoria'];

	$seleciona = mysql_query("SELECT * FROM imoveis WHERE imovelNegocio = '$cat' GROUP BY imovelTipo");

	echo '<option value="">Selecione a Categoria</option>';

	while($res_seleciona = mysql_fetch_array($seleciona)){
		$tipo = $res_seleciona['imovelTipo'];
		echo '<option value="'.$tipo.'">'.$tipo.'</option>';
		
	}

?>

cidade.php

<?php include"../Connections/painel_config.php";

	$conecta = mysql_connect("$hostname_painel_config","$username_painel_config","$password_painel_config");

	$db = mysql_select_db("$database_painel_config");

	$cidade = $_POST['cidade'];
	$uf     = $_POST['estado'];

	$seleciona = mysql_query("SELECT * FROM imoveis WHERE imovelTipo = '$cidade' GROUP BY imovelCidade");

	echo '<option value="">Selecione a Cidade</option>';
	
	while($res_seleciona = mysql_fetch_array($seleciona)){
		 $cid = $res_seleciona['imovelCidade'];
         $uf  = $res_seleciona['imovelEstado'];

		 echo '<option value="'.$cid.'">'.$cid.'-'.$uf.'</option>';
		
	}

?>

bairro.php

<?php include"../Connections/painel_config.php";

	$conecta = mysql_connect("$hostname_painel_config","$username_painel_config","$password_painel_config");

	$db = mysql_select_db("$database_painel_config");

	$bairro = $_POST['bairro'];


 $sql_sub = "SELECT imovelId, imovelTipo, imovelBairro, COUNT(imovelBairro) as total_cat  ";
 $sql_sub = $sql_sub . " FROM imoveis ";
 $sql_sub = $sql_sub . " WHERE imovelCidade = '$bairro' ";
 $sql_sub = $sql_sub . " GROUP BY imovelTipo ";
 $sql_sub = $sql_sub . " ORDER BY imovelBairro ";
 $seleciona = mysql_query($sql_sub, $conecta); 	

 echo '<option value="">Selecione o Bairro</option>';


 while ($reg_sub = mysql_fetch_array($seleciona)) {
 $resultado = $reg_sub["imovelBairro"];
 $total_cat = $reg_sub["total_cat"];	

 echo "<option value='" . $resultado . "'>" . $resultado . " (" . $total_cat . ")</option><br/>";

 } 

 mysql_free_result($rs_sub);

?>

Amigos, como faço para trazer apenas o Bairro que tiver, por exemplo: casa ?

Grato a todos que puderem me ajudar.

Atenciosamente,

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tu vai ter que acionar o ajax quando o select de casa for alterado (.change) passando a categoria, ai tu faz as queries e pega os resultados e dá o retorno, com esse retorno do ajax, tu joga os resultados dentro do select de bairros, é bem simples na verdade

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo Mateus

por favor, me perdoa de coração em solicitar sua ajuda.

mas neste caso como usaria o AJAX, para passar o valor da CATEGORIA vindo do filtro.js, para o bairro.php

Teria algum exemplo para me ajudar.

mais uma vez, por favor me perdoa, pois nunca usei o AJAX.

Grato,

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo Mateus

Estive verificando meu código e verifiquei que já estou usando o AJAX.

Só não consigo levar a VARIÁVEL Categoria para o Bairro.php

Como consigo fazer isso ?

Grato,

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caros amigos.

Consegui resolver o " erro " de filtro.

Após reler, ler, pesquisar, refazer. Fiz a seguinte alteração no meu código e trouxe como preciso.

Obs.: não sei se é a forma mais correta, mas deu certo.

Trecho do Código


      $.post("filtro/bairro.php",{bairro: bairro},function(pega_bairro){
	complete:$("select[name=bairro]").html(pega_bairro);

Trecho do Código com Alteração

  //......................................... acrescentei...
  $.post("filtro/bairro.php",{bairro: bairro, cidade: cidade},function(pega_bairro){
	complete:$("select[name=bairro]").html(pega_bairro);

Grato a todos.

Atenciosamente,

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.